Показать сообщение отдельно
Старый 17.11.2009, 19:24
GFreemen вне форума Посмотреть профиль Отправить личное сообщение для GFreemen Найти все сообщения от GFreemen
  № 13  
Ответить с цитированием
GFreemen
 
Аватар для GFreemen

Регистрация: Oct 2006
Адрес: Волгодонск
Сообщений: 182
Цитата:
Сообщение от Himerets Посмотреть сообщение
По идее UTF8
Приложение флексовое и в главном mxml-скрипте в начале стоит строка
<?xml version="1.0" encoding="utf-8"?>
это просто описание, что из данного XML читать данные в формате utf-8, но это далеко не факт, что сам файл с этим XML имеет формат utf-8. Откройте этот файл в Notepad++ и посмотрите в каком формате данные. Скорее всего он напишет ANSI. Как вы создали этот XML?

Я, когда передаю строку из флеша в сишную библиотеку для сохранения в файл, то библиотека сохраняет как раз в ANSI, для последующего чтения этого файла из флеша сделал функцию-конвертер
Код AS3:
static var ANSItoUTF8_arr:Array=new Array([192,1040,"А"],[193,1041,"Б"],[194,1042,"В"],[195,1043,"Г"],[196,1044,"Д"],[197,1045,"Е"],
												  [168,1025,"Ё"],[198,1046,"Ж"],[199,1047,"З"],[200,1048,"И"],[201,1049,"Й"],[202,1050,"К"],
												  [203,1051,"Л"],[204,1052,"М"],[205,1053,"Н"],[206,1054,"О"],[207,1055,"П"],[208,1056,"Р"],
												  [209,1057,"С"],[210,1058,"Т"],[211,1059,"У"],[212,1060,"Ф"],[213,1061,"Х"],[214,1062,"Ц"],
												  [215,1063,"Ч"],[216,1064,"Ш"],[217,1065,"Щ"],[218,1066,"Ъ"],[219,1067,"Ы"],[220,1068,"Ь"],
												  [221,1069,"Э"],[222,1070,"Ю"],[223,1071,"Я"],
												  [224,1072,"а"],[225,1073,"б"],[226,1074,"в"],[227,1075,"г"],[228,1076,"д"],[229,1077,"е"],
												  [184,1077,"ё"],[230,1078,"ж"],[231,1079,"з"],[232,1080,"и"],[233,1081,"й"],[234,1082,"к"],
												  [235,1083,"л"],[236,1084,"м"],[237,1085,"н"],[238,1086,"о"],[239,1087,"п"],[240,1088,"р"],
												  [241,1089,"с"],[242,1090,"т"],[243,1091,"у"],[244,1092,"ф"],[245,1093,"х"],[246,1094,"ц"],
												  [247,1095,"ч"],[248,1096,"ш"],[249,1097,"щ"],[250,1098,"ъ"],[251,1099,"ы"],[252,1100,"ь"],
												  [253,1101,"э"],[254,1102,"ю"],[255,1103,"я"],
												  [185,8470,"№"]);
//метод для преобразования ANSI toUTF-8
		static public function ANSItoUTF8String(inString:String):String{
			workString="";
			var embedSymbol:String="";
			for(var i:int=0;i<inString.length;i++){
				for(var q:int=0;q<ANSItoUTF8_arr.length;q++){
					if(inString.charCodeAt(i)==ANSItoUTF8_arr[q][0]){
						embedSymbol=String.fromCharCode (ANSItoUTF8_arr[q][1]);
						break;
					}else{
						embedSymbol=inString.substr(i,1);
					}
				}
				workString+=embedSymbol;
			}
			return workString;
		}