Исправлено для немецкого языка, когда вы используете «Ae» для «Ä», «Oe» для «Ö» и т. Д.
/**
* Helper arrays for unicode decomposition
*/
var pattern:Array = new Array();
pattern.push(new RegExp("Š", "g") );
pattern.push( new RegExp("[΅]", "g"));
pattern.push( new RegExp("Ž", "g"));
pattern.push( new RegExp("š", "g"));
pattern.push(new RegExp("[Ϛ]", "g"));
pattern.push( new RegExp("ž", "g"));
pattern.push(new RegExp("[ÀÁÂÃÅ]","g"));
pattern.push( new RegExp("[ÆÄ]","g"));
pattern.push( new RegExp("Ç","g"));
pattern.push( new RegExp("[ÈÉÊË]","g"));
pattern.push(new RegExp("[ÌÍÎÏ]", "g"));
pattern.push( new RegExp("Ð", "g"));
pattern.push( new RegExp("Ñ","g"));
pattern.push( new RegExp("[ÒÓÔÕØ]", "g"));
pattern.push( new RegExp("Ü","g"));
pattern.push( new RegExp("[ÙÚÛ]","g"));
pattern.push( new RegExp("[ŸÝ]", "g"));
pattern.push( new RegExp("Þ", "g"));
pattern.push( new RegExp("ß", "g"));
pattern.push( new RegExp("[àáâãå]","g"));
pattern.push( new RegExp("[æä]","g"));
pattern.push( new RegExp("ç","g"));
pattern.push( new RegExp("[èéêë]","g"));
pattern.push( new RegExp("[ìíîï]","g"));
pattern.push( new RegExp("ð", "g"));
pattern.push( new RegExp("ñ","g"));
pattern.push( new RegExp("[òóôõø]", "g"));
pattern.push( new RegExp("ü","g"));
pattern.push( new RegExp("[ùúû]","g"));
pattern.push( new RegExp("[ýÿ]","g"));
pattern.push( new RegExp("þ", "g"));
var patternReplace:Array = [
"S",
"Oe",
"Z",
"s",
"oe",
"z",
"A",
"Ae",
"C",
"E",
"I",
"D",
"N",
"O",
"Ue",
"U",
"Y",
"Th",
"ss",
"a",
"ae",
"c",
"e",
"i",
"d",
"n",
"o",
"ue",
"u",
"y",
"th"];
/**
* Returns the Unicode decomposition of a given run of accented text.
* @param value The original string
* @return The string without accents
*/
private static function decomposeUnicode(str:String):String
{
for (var i:int = 0; i < pattern.length; i++)
{
str = str.replace(pattern[i], patternReplace[i]);
}
return str;
}