![]() |
|
||||||||||
|
|||||
|
Регистрация: Oct 2006
Сообщений: 5
|
Доброго времени суток!
Вопрос к знающим - как заставить Flash читать файл XML в кодировке KOI8-R, а не в UTF8? Поясняю - преобразовать файл в Юникод в данном случае не кавайное (не есть гуд, не кошерное) решение. Теоретически можно сделать перекодировку посимвольно данных из XML с помощью ActionScript'а и некоторой таблицы перекодировки - но XMLparser Flash'евый пытается читать русские символы как-то странно - даже не по 2 байта, а так, что из 20 символов получается 12! System.useCharset тоже не вариант, потому что кодировка ОС - windows-1251, и, кроме того, мувик должен корректно отображаться на не русскоязычных машинах... P.S. К тому же, если передавать что-то в мувик из JavaScript, то мувик нормально это отображает в той же KOI8... не понимаю ![]() |
|
|||||
|
Регистрация: May 2006
Сообщений: 2
|
если ты формируеш XML из базы, то сразу выводи данные в UTF8,
ето проще и удобно, и будет корректно отображаться на не русскоязычных машинах. |
|
|||||
|
Et cetera
Регистрация: Sep 2002
Сообщений: 30,787
|
Выводи KOI в utf-8, а во Flash просто конвертируй раскладку KOI в нормальную.
|
|
|||||
|
Регистрация: Oct 2006
Сообщений: 5
|
Цитата:
поясняю ситуацию - есть локальный файл с данными, он может быть только в KOI8-R и никак иначе. Проблема - как заставить парсер прочитать его именно как файл KOI8-R? или предложите альтенативные варианты решения, исходя из того, что исходную кодировку менять нельзя jojo, к сожалению, файл локальный и формирую его не я |
|
|||||
|
Et cetera
Регистрация: Sep 2002
Сообщений: 30,787
|
Цитата:
KOI от windows-1251 отличается лишь обратным регистром и расположением русских букв. Т.е. есть прямая зависимость, например «Ч» в KOI = «в» в windows-1251. |
|
|||||
|
Регистрация: Oct 2006
Сообщений: 5
|
Цитата:
хотя document.title в кодировке KOI8-R, строка отображается нормально если же я ставлю useCharset, тогда отображается начинка файла, но начинаются краозяблики в тайтле и других местах Да, файл с JavaScript и html тоже нельзя перекодировать P.S. __etc, кстати, не прямая зависимость для некоторых букв, кажется tr/абвгдежзийклмнопрстуфхцчшщъыьэюяАБВГДЕЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯ/ЮАБЦДЕФГХИЙКЛМНОПЯРСТУЖВЬЫЗШЭЩЧЪюабцдефгхийклмнопярстужвьызшэщчъ/; P.P.S. обобщая - проблема - прочитать файл XML хотя бы посимвольно НЕ как UTF8, не прибегая к глобальным для мувика настройкам Последний раз редактировалось squiddy; 20.10.2006 в 16:23. |
|
|||||
|
Et cetera
Регистрация: Sep 2002
Сообщений: 30,787
|
System.useCharset не существует.
Решить проблему без utf-8 в таком случае нельзя. (Если, конечно, речь не идёт об AS3, где есть класс ByteArray и его метод readMultibyte). з.Ы. Может и не прямая зависимость, но мой конвертер, которому уже года два как, прекрасно по прямой зависимости переводит из KOI в win. |
|
|||||
|
Регистрация: Nov 2005
Сообщений: 149
|
Сообщение от __etc Выводи KOI в utf-8, а во Flash просто конвертируй раскладку KOI в нормальную. что ты имеешь ввиду? поясняю ситуацию - есть локальный файл с данными, он может быть только в KOI8-R и никак иначе. Проблема - как заставить парсер прочитать его именно как файл KOI8-R? Если Вы напишете свой "декодер" на флеше (убив н-времени, добавив 1-2 КБ кода в ролик), а потом в будущем появиться еще какая-нибудь кодировка - снова лезть во флешку, менять, компилить (и все это без гарантий на будущее). Или проще добавить еще одну строчку в серверной части? |
|
|||||
|
Регистрация: Dec 1999
Адрес: Магадан
Сообщений: 763
|
Цитата:
Уже все возможные варианты предложены: конвертировать из win-1251 (но не работает на машинах, где кодировка 1252 по-умолчанию), либо в 9-м флэш-плеере прочитать по байтам. Сравнение с javascript, SetVariable() - некорректно, там уже сам браузер перекодируют куда надо и сам работает с юникодом. Может тогда отработать асинхрон и передать данные во флэш? ![]()
__________________
Верить никому нельзя. Мне - можно. :) |
|
|||||
|
послушай meiciuc =)
не придумый изварещнные методы. сделай скрипт в 3 строки: 1.загрузить файл, 2.конвертнуть содержимое в утф, 3.вернуть измененое содержимое. и запрашивай этот скрипт вместо файла. и будет всем счастье |
![]() |
![]() |
Часовой пояс GMT +4, время: 11:46. |
|
|
« Предыдущая тема | Следующая тема » |
|
|