ColdFusion: преобразование акцентированных региональных символов в обычный ASCII - PullRequest
3 голосов
/ 29 марта 2012

Мне нужно преобразовать символы на французском, шведском и других языках в их «нормальный» стандартный формат ASCII.

Я не знаю, как объяснить, вот пример:

  • ç -> c
  • ò -> o

...

В bash Unix я бы использовал iconv .Как я могу сделать в ColdFusion9 / Java?

Ответы [ 2 ]

6 голосов
/ 29 марта 2012

Я нашел этот простой UDF на CFLib.org :

deAccent

<cfscript>
/**
 * Replaces accented characters with their non accented closest equivalents.
 * 
 * @return Returns a string. 
 * @author Rachel Lehman (raelehman@gmail.com) 
 * @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 голосов
/ 03 апреля 2013

Вы также можете использовать функцию charsetEncode, встроенную в CF.

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