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

Вернуться   Форум Flasher.ru > Flash > Общие вопросы о Flash (не затрагивающие ActionScript)

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

Регистрация: Feb 2004
Сообщений: 40
По умолчанию XML и Flash = фигня с кодировками

Проблема вот в чем (может, уже спрашивали, не бейте ногами):
При чтении данных из xml-файла бьется кодировка. В самой флешке пробовал указывать System.useCodepage = true;
Во вложении файлы:
menu.xml - файл, из которого берутся данные
menu_local (with useCodepage).swf - флешка с useCodepage = true;
menu_local (wo useCodepage).swf - флешка без useCodepage

В чем может быть проблема? Сам xml пишется с помощью PHP 4.6 (DOM XML). Все русские символы перекодируются с помощью iconv(). Для iconv пробовал указывать разные кодировки (windows-1251, ISO-8859-1, koi8-r). Нормально xml генерится только с кодировкой win1251. Где косяк?

Старый 25.12.2005, 22:28
Antares вне форума Посмотреть профиль Найти все сообщения от Antares
  № 2  
Ответить с цитированием
Antares
Banned
[+1 16.05.2006]
[++1 16.05.2006]
[+ 1 21.05.06]
[++ за хамство]
[+1 21.05.2006]
 
Аватар для Antares

Регистрация: Dec 2003
Сообщений: 3,925
Встречался с таким, победил, руками указав System.useCodepage = false;

Старый 25.12.2005, 22:29
Antares вне форума Посмотреть профиль Найти все сообщения от Antares
  № 3  
Ответить с цитированием
Antares
Banned
[+1 16.05.2006]
[++1 16.05.2006]
[+ 1 21.05.06]
[++ за хамство]
[+1 21.05.2006]
 
Аватар для Antares

Регистрация: Dec 2003
Сообщений: 3,925
Хотя стоп. iconv у тебя из какой в какую перекодирует?

Старый 25.12.2005, 23:20
Serzhik вне форума Посмотреть профиль Отправить личное сообщение для Serzhik Найти все сообщения от Serzhik
  № 4  
Ответить с цитированием
Serzhik

Регистрация: Feb 2004
Сообщений: 40
Цитата:
Сообщение от Antares
Хотя стоп. iconv у тебя из какой в какую перекодирует?
useCodepage = false не помогает (то же самое, когда я не указываю вообще useCodepage)

Перевод делал в utf-8 из win1251, ISO-8859-1, koi8-r (в порядке бреда указывал и win1252)

Сами данные читаются из базы. База в utf-8. Просто на страницу данные выводятся нормально (у меня предпросмотр перед выгрузкой в xml)
У iconv() input, output и internal кодировки - ISO-8859-1. Пробовал принудительно указывать input win1251, output - utf-8. Тоже не помогло.

У меня уже была похожая проблема. Там все решилось iconv("ISO-8859-1", "utf-8", $str); Здесь такой вариант не проходит. Возможно, потому что хостинг в данном случае другой. До некоторого времени там вообще не было поддержки iconv (включили по моему запросу).


Последний раз редактировалось Serzhik; 25.12.2005 в 23:23.
Старый 26.12.2005, 00:46
Antares вне форума Посмотреть профиль Найти все сообщения от Antares
  № 5  
Ответить с цитированием
Antares
Banned
[+1 16.05.2006]
[++1 16.05.2006]
[+ 1 21.05.06]
[++ за хамство]
[+1 21.05.2006]
 
Аватар для Antares

Регистрация: Dec 2003
Сообщений: 3,925
У меня соответственно один вопрос. Если в БД у нас utf-8, то укажи на всякий при выводе хедером, что ты используешь uft-8, соответственно, про кодировки во Flash можно будет забыть, равно как и про iconv.

Потому что я хоть убей не понимаю, чего ты хочешь добиться, конвертируя строку в utf-8 (что априори, т.к. ты упомянул, как настроена БД) iconv-ом как $str = iconv("ISO-8859-1", "utf-8", $str);

Это примерно то же самое, что на встречу с японцем пригласить переводчика с итальянского

Старый 26.12.2005, 08:59
Serzhik вне форума Посмотреть профиль Отправить личное сообщение для Serzhik Найти все сообщения от Serzhik
  № 6  
Ответить с цитированием
Serzhik

Регистрация: Feb 2004
Сообщений: 40
Цитата:
Сообщение от Antares
У меня соответственно один вопрос. Если в БД у нас utf-8, то укажи на всякий при выводе хедером, что ты используешь uft-8, соответственно, про кодировки во Flash можно будет забыть, равно как и про iconv.

Потому что я хоть убей не понимаю, чего ты хочешь добиться, конвертируя строку в utf-8 (что априори, т.к. ты упомянул, как настроена БД) iconv-ом как $str = iconv("ISO-8859-1", "utf-8", $str);

Это примерно то же самое, что на встречу с японцем пригласить переводчика с итальянского
Мда, по поводу итальянца - это верно
Просто от безнадеги я уже не знаю, что делать... Кодировка в базе верная, выдача на экран происходит норм! В xml тоже выгружается все нормально (по крайней мере, IE и Visual Studio .NET ошиюки синтаксиса не находят). Так почему тогда флеш не может корректно прочитать этот файл?
А по поводу хедера не понял: я ж не на экран выдаю информацию, а в файл. Причем используя DOM XML, который по умолчанию генерит файл именно в utf8. На всякий случай попробовал результат iconv вывести на экран (установил в браузере кодировку UTF8): все корректно вывелось в этой кодировке. А в флеше опять кракозябры!
По поводу useCodepage: включение/отключение (true/false) этой опции на хостинге не имеет никакого значения, файл одинаково читается кракозябрами. Хостинг под *nix'ом

----------------------------------------------

Теперь по поводу самой флешки: попробовал trace'ом вывести данные, которые читаются из файла. Так вот при UseCodepage = false все читается отлично, но при этом не выводится (в выпадающем списке пустые строчки). Хотя значения, которые присваиваются этим мувикам, правильные


Последний раз редактировалось Serzhik; 26.12.2005 в 09:24.
Старый 26.12.2005, 09:14
MIX-er вне форума Посмотреть профиль Отправить личное сообщение для MIX-er Найти все сообщения от MIX-er
  № 7  
Ответить с цитированием
MIX-er
 
Аватар для MIX-er

Регистрация: Jun 2005
Сообщений: 612
Отправить сообщение для MIX-er с помощью ICQ Отправить сообщение для MIX-er с помощью Yahoo
я когда мучался с тож е проблемой то после кодировки при открытии редактором файл представлял из себя какую то белеберду... но работал...
__________________
Best regards, Boris Petrov

Старый 26.12.2005, 09:51
Serzhik вне форума Посмотреть профиль Отправить личное сообщение для Serzhik Найти все сообщения от Serzhik
  № 8  
Ответить с цитированием
Serzhik

Регистрация: Feb 2004
Сообщений: 40
Немного разобрался: проблема была в том, что для поля, в которое происходит вывод строк меню (мувик с текстовым полем), стояли настройки Character->Specify Range только для латиницы. Добавил кирилицу, убрал useCodepage (если оставить useCodepage=true, то выводится будут кракозябры) - на локальной машине все заработало. А вот на хостинге все равно кракозябры!!! Фонт в этом текстовом поле Arial (пробовал Arial Cyr - тоже самое)

===================================================

Это полный пердимонокль!!!!!!
Все получилось, но почему заработало, я, хоть убейся об стену, не понимаю!!!!
1. Сделал выгрузку с преобразованием iconv("ISO-8859-1", "utf8", $str)
2. useCodepage = true;
3. Паблиш для FlashPlayer 7.0, AS 2.0

И теперь все ок!!! Но почему??? Откуда там ISO-8859-1??? Сами страницы у меня в win1251, база в utf8. Правда, внутрення кодировка iconv ISO-8859-1. Неужели из-за этого?
Причем самое интересное: теперь IE выводит саму xml с кракозябрами (правда, теперь мне на это наплевать, главное, чтобы флеш нормально читал). Но вопрос-то остается: получается, что флешка читает xml в какой-то кривой кодировке? Или как?
Гуру! Объясните, а то чокнусь


Последний раз редактировалось Serzhik; 26.12.2005 в 11:16.
Старый 28.12.2005, 15:45
Dezept1p вне форума Посмотреть профиль Найти все сообщения от Dezept1p
  № 9  
Ответить с цитированием
Dezept1p
Banned

Регистрация: Dec 2005
Сообщений: 67
сам фаил xml сохранить Save as ->(unicode)

Старый 28.12.2005, 21:33
nyctota вне форума Посмотреть профиль Отправить личное сообщение для nyctota Найти все сообщения от nyctota
  № 10  
Ответить с цитированием
nyctota
 
Аватар для nyctota

Регистрация: Nov 2003
Адрес: Север
Сообщений: 244
Попробовал. Не понравилось =/
В самом деле, как только эмбедишь шрифт -- то, что приходит с сервака становиться нечитабельным.
Хотя, если сохранить текстовый файл в Юникоде, то его читает и отображает нормально. Что за!? Я в шоке.
__________________
Scio me, nihil scire.

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

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

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


 


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


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