![]() |
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. Где косяк? :confused: |
Встречался с таким, победил, руками указав System.useCodepage = false;
|
Хотя стоп. iconv у тебя из какой в какую перекодирует?
|
Цитата:
Перевод делал в 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 (включили по моему запросу). |
У меня соответственно один вопрос. Если в БД у нас 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 все читается отлично, но при этом не выводится (в выпадающем списке пустые строчки). Хотя значения, которые присваиваются этим мувикам, правильные |
я когда мучался с тож е проблемой то после кодировки при открытии редактором файл представлял из себя какую то белеберду... но работал...
|
Немного разобрался: проблема была в том, что для поля, в которое происходит вывод строк меню (мувик с текстовым полем), стояли настройки 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 в какой-то кривой кодировке? Или как? Гуру! Объясните, а то чокнусь:) |
сам фаил xml сохранить Save as ->(unicode)
|
Попробовал. Не понравилось =/
В самом деле, как только эмбедишь шрифт -- то, что приходит с сервака становиться нечитабельным. Хотя, если сохранить текстовый файл в Юникоде, то его читает и отображает нормально. Что за!? Я в шоке. |
| Часовой пояс GMT +4, время: 16:17. |
Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.