ActionScript 2: запросы файлов с UTF-8 в названии

Бился несколько дней над задачей, когда в 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"

Метки: , , ,

Поделись ссылкой!

Оставить комментарий

XHTML: Вы можете использовать эту разметку: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>