Here is a fun little quiz for you. Given a variable S (a number) that you output to screen with dashes like so:

<cfoutput>-#s#-</cfoutput>

If you see this:

-8 -

then what would you expect to happen after you trim it? If you said 8, than you would be right.... most of the time. Assume you did trim it:

<cfoutput>-#trim(s)#-</cfoutput>

And you still saw a space? What then? My buddy Todd ran into this. The first thing that came to mind was special characters. I suggested looping over every character and printing out the character code like so:

<cfloop index="x" from="1" to="#len(s)#"> <cfset c = mid(s, x, 1)> <cfoutput>#c#=#asc(c)#<br/></cfoutput> </cfloop>

When Todd did this he saw:

8=56
 =160

Yep - a special character. There are a variety of ways to handle this, including the awesomely named deMoronize at CFLib, but in this case Todd needed to strip out not replace the bad character. I would have used a val() but he needed to look out for ranges as well (1-2) and therefore used a isNumeric check beforehand. I know I've blogged about this before but it definitely still trips us all out so watch out for it.