Форум Flasher.ru
Ближайшие курсы в Школе RealTime
Список интенсивных курсов: [см.]  
  
Специальные предложения: [см.]  
  
 
Блоги Правила Справка Пользователи Календарь Сообщения за день
 

Вернуться   Форум Flasher.ru > Flash > ActionScript 1.0/2.0

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 20.10.2006, 08:22
squiddy вне форума Посмотреть профиль Отправить личное сообщение для squiddy Найти все сообщения от squiddy
  № 1  
Ответить с цитированием
squiddy

Регистрация: Oct 2006
Сообщений: 5
Question XML, UTF8 & KOI8-R

Доброго времени суток!

Вопрос к знающим - как заставить Flash читать файл XML в кодировке KOI8-R, а не в UTF8?

Поясняю - преобразовать файл в Юникод в данном случае не кавайное (не есть гуд, не кошерное) решение.
Теоретически можно сделать перекодировку посимвольно данных из XML с помощью ActionScript'а и некоторой таблицы перекодировки - но XMLparser Flash'евый пытается читать русские символы как-то странно - даже не по 2 байта, а так, что из 20 символов получается 12!
System.useCharset тоже не вариант, потому что кодировка ОС - windows-1251, и, кроме того, мувик должен корректно отображаться на не русскоязычных машинах...

P.S. К тому же, если передавать что-то в мувик из JavaScript, то мувик нормально это отображает в той же KOI8... не понимаю

Старый 20.10.2006, 12:35
jojo вне форума Посмотреть профиль Отправить личное сообщение для jojo Найти все сообщения от jojo
  № 2  
Ответить с цитированием
jojo

Регистрация: May 2006
Сообщений: 2
если ты формируеш XML из базы, то сразу выводи данные в UTF8,
ето проще и удобно, и будет корректно отображаться на не русскоязычных машинах.

Старый 20.10.2006, 14:31
etc вне форума Посмотреть профиль Найти все сообщения от etc
  № 3  
Ответить с цитированием
etc
Et cetera
 
Аватар для etc

Регистрация: Sep 2002
Сообщений: 30,787
Выводи KOI в utf-8, а во Flash просто конвертируй раскладку KOI в нормальную.

Старый 20.10.2006, 15:52
squiddy вне форума Посмотреть профиль Отправить личное сообщение для squiddy Найти все сообщения от squiddy
  № 4  
Ответить с цитированием
squiddy

Регистрация: Oct 2006
Сообщений: 5
Цитата:
Сообщение от __etc
Выводи KOI в utf-8, а во Flash просто конвертируй раскладку KOI в нормальную.
что ты имеешь ввиду?
поясняю ситуацию - есть локальный файл с данными, он может быть только в KOI8-R и никак иначе. Проблема - как заставить парсер прочитать его именно как файл KOI8-R?

или предложите альтенативные варианты решения, исходя из того, что исходную кодировку менять нельзя

jojo, к сожалению, файл локальный и формирую его не я

Старый 20.10.2006, 15:55
etc вне форума Посмотреть профиль Найти все сообщения от etc
  № 5  
Ответить с цитированием
etc
Et cetera
 
Аватар для etc

Регистрация: Sep 2002
Сообщений: 30,787
Цитата:
Сообщение от squiddy
или предложите альтенативные варианты решения, исходя из того, что исходную кодировку менять нельзя
Поставить System.useCodepage = true;
KOI от windows-1251 отличается лишь обратным регистром и расположением русских букв. Т.е. есть прямая зависимость, например «Ч» в KOI = «в» в windows-1251.

Старый 20.10.2006, 16:17
squiddy вне форума Посмотреть профиль Отправить личное сообщение для squiddy Найти все сообщения от squiddy
  № 6  
Ответить с цитированием
squiddy

Регистрация: Oct 2006
Сообщений: 5
Цитата:
Сообщение от __etc
Поставить System.useCodepage = true;
KOI от windows-1251 отличается лишь обратным регистром и расположением русских букв. Т.е. есть прямая зависимость, например «Ч» в KOI = «в» в windows-1251.
самый первый пост: "System.useCharset тоже не вариант, потому что кодировка ОС - windows-1251, и, кроме того, мувик должен корректно отображаться на не русскоязычных машинах..."

Код:
parent.topflash.SetVariable("pCaption",parent.document.hidframe.document.title);
хотя document.title в кодировке KOI8-R, строка отображается нормально
если же я ставлю useCharset, тогда отображается начинка файла, но начинаются краозяблики в тайтле и других местах

Да, файл с JavaScript и html тоже нельзя перекодировать

P.S. __etc, кстати, не прямая зависимость для некоторых букв, кажется
tr/абвгдежзийклмнопрстуфхцчшщъыьэюяАБВГДЕЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯ/ЮАБЦДЕФГХИЙКЛМНОПЯРСТУЖВЬЫЗШЭЩЧЪюабцдефгхийклмнопярстужвьызшэщчъ/;

P.P.S. обобщая - проблема - прочитать файл XML хотя бы посимвольно НЕ как UTF8, не прибегая к глобальным для мувика настройкам


Последний раз редактировалось squiddy; 20.10.2006 в 16:23.
Старый 20.10.2006, 16:47
etc вне форума Посмотреть профиль Найти все сообщения от etc
  № 7  
Ответить с цитированием
etc
Et cetera
 
Аватар для etc

Регистрация: Sep 2002
Сообщений: 30,787
System.useCharset не существует.

Решить проблему без utf-8 в таком случае нельзя. (Если, конечно, речь не идёт об AS3, где есть класс ByteArray и его метод readMultibyte).

з.Ы. Может и не прямая зависимость, но мой конвертер, которому уже года два как, прекрасно по прямой зависимости переводит из KOI в win.

Старый 22.10.2006, 13:18
meiciuc вне форума Посмотреть профиль Отправить личное сообщение для meiciuc Найти все сообщения от meiciuc
  № 8  
Ответить с цитированием
meiciuc

Регистрация: Nov 2005
Сообщений: 149
Код:
Сообщение от __etc
Выводи KOI в utf-8, а во Flash просто конвертируй раскладку KOI в нормальную.
Код:
что ты имеешь ввиду?
поясняю ситуацию - есть локальный файл с данными, он может быть только в KOI8-R и никак иначе. Проблема - как заставить парсер прочитать его именно как файл KOI8-R?
ну так сделайте соответствующий файл для флеша но уже в утф-8. Одна строчка РНР переведет его в нужную кодировку. Зачем изобретать велосипед на флеше, если он уже есть в серверной части?

Если Вы напишете свой "декодер" на флеше (убив н-времени, добавив 1-2 КБ кода в ролик), а потом в будущем появиться еще какая-нибудь кодировка - снова лезть во флешку, менять, компилить (и все это без гарантий на будущее). Или проще добавить еще одну строчку в серверной части?

Старый 22.10.2006, 14:00
Dendroid вне форума Посмотреть профиль Отправить личное сообщение для Dendroid Посетить домашнюю страницу Dendroid Найти все сообщения от Dendroid
  № 9  
Ответить с цитированием
Dendroid
 
Аватар для Dendroid

Регистрация: Dec 1999
Адрес: Магадан
Сообщений: 763
Цитата:
Сообщение от meiciuc
Или проще добавить еще одну строчку в серверной части?
Говорят же, файл локальный, и нет возможности поменять его формат...

Уже все возможные варианты предложены: конвертировать из win-1251 (но не работает на машинах, где кодировка 1252 по-умолчанию), либо в 9-м флэш-плеере прочитать по байтам.
Сравнение с javascript, SetVariable() - некорректно, там уже сам браузер перекодируют куда надо и сам работает с юникодом. Может тогда отработать асинхрон и передать данные во флэш?
__________________
Верить никому нельзя. Мне - можно. :)

Старый 23.10.2006, 12:17
Badim вне форума Посмотреть профиль Отправить личное сообщение для Badim Посетить домашнюю страницу Badim Найти все сообщения от Badim
  № 10  
Ответить с цитированием
Badim

Регистрация: Jul 2005
Адрес: Steam/Mobiles
Сообщений: 790
Отправить сообщение для Badim с помощью ICQ Отправить сообщение для Badim с помощью AIM Отправить сообщение для Badim с помощью MSN Отправить сообщение для Badim с помощью Skype™
послушай meiciuc =)
не придумый изварещнные методы.
сделай скрипт в 3 строки:
1.загрузить файл,
2.конвертнуть содержимое в утф,
3.вернуть измененое содержимое.
и запрашивай этот скрипт вместо файла.
и будет всем счастье

Создать новую тему Ответ Часовой пояс GMT +4, время: 10:42.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


 


Часовой пояс GMT +4, время: 10:42.


Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.