![]() |
XML, UTF8 & KOI8-R
Доброго времени суток!
Вопрос к знающим - как заставить Flash читать файл XML в кодировке KOI8-R, а не в UTF8? Поясняю - преобразовать файл в Юникод в данном случае не кавайное (не есть гуд, не кошерное) решение. Теоретически можно сделать перекодировку посимвольно данных из XML с помощью ActionScript'а и некоторой таблицы перекодировки - но XMLparser Flash'евый пытается читать русские символы как-то странно - даже не по 2 байта, а так, что из 20 символов получается 12! :eek: System.useCharset тоже не вариант, потому что кодировка ОС - windows-1251, и, кроме того, мувик должен корректно отображаться на не русскоязычных машинах... P.S. К тому же, если передавать что-то в мувик из JavaScript, то мувик нормально это отображает в той же KOI8... не понимаю :confused: |
если ты формируеш XML из базы, то сразу выводи данные в UTF8,
ето проще и удобно, и будет корректно отображаться на не русскоязычных машинах. |
Выводи KOI в utf-8, а во Flash просто конвертируй раскладку KOI в нормальную.
|
Цитата:
поясняю ситуацию - есть локальный файл с данными, он может быть только в KOI8-R и никак иначе. Проблема - как заставить парсер прочитать его именно как файл KOI8-R? или предложите альтенативные варианты решения, исходя из того, что исходную кодировку менять нельзя jojo, к сожалению, файл локальный и формирую его не я |
Цитата:
KOI от windows-1251 отличается лишь обратным регистром и расположением русских букв. Т.е. есть прямая зависимость, например «Ч» в KOI = «в» в windows-1251. |
Цитата:
Код:
parent.topflash.SetVariable("pCaption",parent.document.hidframe.document.title);если же я ставлю useCharset, тогда отображается начинка файла, но начинаются краозяблики в тайтле и других местах Да, файл с JavaScript и html тоже нельзя перекодировать P.S. __etc, кстати, не прямая зависимость для некоторых букв, кажется tr/абвгдежзийклмнопрстуфхцчшщъыьэюяАБВГДЕЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯ/ЮАБЦДЕФГХИЙКЛМНОПЯРСТУЖВЬЫЗШЭЩЧЪюабцдефгхийклмнопярстужвьызшэщчъ/; P.P.S. обобщая - проблема - прочитать файл XML хотя бы посимвольно НЕ как UTF8, не прибегая к глобальным для мувика настройкам |
System.useCharset не существует.
Решить проблему без utf-8 в таком случае нельзя. (Если, конечно, речь не идёт об AS3, где есть класс ByteArray и его метод readMultibyte). з.Ы. Может и не прямая зависимость, но мой конвертер, которому уже года два как, прекрасно по прямой зависимости переводит из KOI в win. |
Код:
Сообщение от __etcКод:
что ты имеешь ввиду?Если Вы напишете свой "декодер" на флеше (убив н-времени, добавив 1-2 КБ кода в ролик), а потом в будущем появиться еще какая-нибудь кодировка - снова лезть во флешку, менять, компилить (и все это без гарантий на будущее). Или проще добавить еще одну строчку в серверной части? |
Цитата:
Уже все возможные варианты предложены: конвертировать из win-1251 (но не работает на машинах, где кодировка 1252 по-умолчанию), либо в 9-м флэш-плеере прочитать по байтам. Сравнение с javascript, SetVariable() - некорректно, там уже сам браузер перекодируют куда надо и сам работает с юникодом. Может тогда отработать асинхрон и передать данные во флэш? ;) |
послушай meiciuc =)
не придумый изварещнные методы. сделай скрипт в 3 строки: 1.загрузить файл, 2.конвертнуть содержимое в утф, 3.вернуть измененое содержимое. и запрашивай этот скрипт вместо файла. и будет всем счастье |
| Часовой пояс GMT +4, время: 12:34. |
Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.