2012-03-29 12 views
3

Ich muss Zeichen in Französisch, Schweden und anderen Sprachen in ihrem "normalen" ASCII-Standardformat konvertieren.ColdFusion: Akzentuierte regionale Zeichen in ASCII konvertieren

Ich weiß nicht, wie, hier zu erklären, ist ein Beispiel:

  • ç -> c
  • ò -> o

...

In bash Unix Ich würde iconv verwenden. Wie kann ich in ColdFusion9/Java machen?

+0

Check this out http://stackoverflow.com/a/5807419/56604 – Sergii

+0

In Java kann man dies tun: http://stackoverflow.com/questions/6328654/android-2 -3-and-java-text-normalizer –

Antwort

5

fand ich diese einfache UDF bei CFLib.org:

deAccent

<cfscript> 
/** 
* Replaces accented characters with their non accented closest equivalents. 
* 
* @return Returns a string. 
* @author Rachel Lehman ([email protected]) 
* @version 1, November 15, 2010 
*/ 
function deAccent(str){ 
    var newstr = ""; 
    var list1 = "á,é,í,ó,ú,ý,à,è,ì,ò,ù,â,ê,î,ô,û,ã,ñ,õ,ä,ë,ï,ö,ü,ÿ,À,È,Ì,Ò,Ù,Á,É,Í,Ó,Ú,Ý,Â,Ê,Î,Ô,Û,Ã,Ñ,Õ,Ä,Ë,Ï,Ö,Ü,x"; 
    var list2 = "a,e,i,o,y,u,a,e,i,o,u,a,e,i,o,u,a,n,o,a,e,i,o,u,y,A,E,I,O,U,A,E,I,O,U,Y,A,E,I,O,U,A,N,O,A,E,I,O,U,Y"; 

    newstr = ReplaceList(str,list1,list2); 
    return newstr; 
} 
</cfscript> 
+0

also muss ich ALLE regionalen Zeichen auflisten ??? :) Was ist mit Schwedisch? –

+0

Natürlich können Sie beliebige Zeichen hinzufügen, die Sie benötigen. In ColdFusion gibt es nichts, was diese Art der Konvertierung betrifft. Sie können möglicherweise etwas im zugrunde liegenden Java verwenden (siehe [Sergii's Kommentar] (http://stackoverflow.com/questions/9926507/coldfusion-convert-accented-regional-characters-to-plain-ascii/9926760#comment12671936_9926507)). – ale

-1

Sie auch die charsetEncode Funktion eingebaut zu CF. verwenden können

encodedString = charsetEncode(stringToBeConverted, "utf-8"); 
+0

Ich habe versucht, ein einfaches Beispiel für den Code: Aber es gibt mir eine Fehlermeldung: Parameter 1 der CharsetEncode Funktion, die nun x ist, muss ein gültiges binäres Objekt sein. Fehlt etwas? – FlexyBoz