Saturday, March 13, 2010

Convert Upper ACSII Characters

This snippet will convert characters with an ascii value between 128 and 255 to their lower ascii equivalent. This can be useful for converting strings to be used in urls, eg: www.website.com/littéraire is an invalid url since it contains the letter 'é'. To make it valid the 'é' must be converted to its lower ascii equivalent; 'e'.

Here is the code to do this:


<cfset string = "Your text with upper ascii characters ééé">
<cfset parsedText = replaceList(string,"À,Á,Â,Ã,Ä,Å,à,á,â,ã,ä,å","A,A,A,A,A,A,a,a,a,a,a,a")>
<cfset parsedText = replaceList(parsedText,"Æ,æ,Ç,ç","AE,ae,C,c")>
<cfset parsedText = replaceList(parsedText,"È,É,Ê,Ë,è,é,ê,ë","E,E,E,E,e,e,e,e")>
<cfset parsedText = replaceList(parsedText,"Ì,Í,Î,Ï,ì,í,î,ï","I,I,I,I,i,i,i,i")>
<cfset parsedText = replaceList(parsedText,"Ð,ð,Ñ,ñ","Eth,eth,N,n")>
<cfset parsedText = replaceList(parsedText,"Ò,Ó,Ô,Õ,Ö,Ø,ò,ó,ô,õ,ö,ø","O,O,O,O,O,O,o,o,o,o,o,o")>
<cfset parsedText = replaceList(parsedText,"Ù,Ú,Û,Ü,ù,ú,û,ü","U,U,U,U,u,u,u,u")>
<cfset parsedText = replaceList(parsedText,"Ý,ý,ß,ÿ","Y,y,ss,y")>
<cfset parsedText = replaceList(parsedText,"‘,’,“,”","',',"",""")>
<cfset parsedText = replace(parsedText,"™","(TM)","ALL")>
<cfset parsedText = replace(parsedText,"¢","cent","ALL")>
<cfset parsedText = replace(parsedText,"¥","yen","ALL")>
<cfset parsedText = replace(parsedText,"®","registered trademark","ALL")>
<cfset parsedText = replace(parsedText,"±","plus or minus","ALL")>
<cfset parsedText = replace(parsedText,"µ","micro","ALL")>
<cfset parsedText = replace(parsedText,"¼","1/4","ALL")>
<cfset parsedText = replace(parsedText,"½","1/2","ALL")>
<cfset parsedText = replace(parsedText,"¾","3/4","ALL")>
<cfset parsedText = replace(parsedText,"©","copyright","ALL")>
<cfset parsedText = replace(parsedText,"£","pound sterling","ALL")>
<cfset parsedText = replace(parsedText,"&&","&amp;","ALL")>
<cfoutput>#parsedText#</cfoutput>

No comments:

Post a Comment