Бился несколько дней над задачей, когда в ActionScript необходимо было динамически запрашивать файлы, содержащие кириллицу в названии. Просто взять и «пропустить» всё через функцию escape не помогало, ибо в динамически полученных данных содержались символы пути (такие как slash).
Было найдено простое решение: посимвольный перебор динамически полученной строки с названием файла, игнорируя символы пути. Взгляните на код:
var req = "folder/файл.flv";
function convertString(tsrt:String):String {
var rstr:String = "";
for (var i:Number = 0; i<tsrt.length; i++) {
if ((tsrt.charCodeAt(i) == 1025) || (tsrt.charCodeAt(i) == 1105) || ((tsrt.charCodeAt(i)>=1040) && (tsrt.charCodeAt(i)<=1103))) {
rstr = rstr+escape(tsrt.charAt(i));
} else {
rstr = rstr+tsrt.charAt(i);
}
}
return rstr;
}
trace(convertString(req)); // Возвращает: "folder/%D1%84%D0%B0%D0%B9%D0%BB.flv"
Метки: ActionScript 2, Flash, UTF-8, кодировки