|
|
22.09.2006, 19:11
|
|
Гость
Гость
|
Здравствуйте!
Сделали сайт на флеше, который подргружается с xml'ов с Нетката. Чтобы флеш читал русский язык нормально, нужно, чтобы из кодировки Windows 1251 неткат перекодировал в Unicode. Нашли способ осуществить это следующим образом:
Окружая каждый тег и переменную таким образом:
Код:
";
echo iconv("Windows-1251","UTF-8","
<?xml version="1.0" encoding="utf-8"?>
<text>
");
echo "
(это префикс списка объектов - в остальных полях идЈт так же, то есть окружаем iconv теги и переменные)
Вроде бы работало, но недавно стало выдавать ошибки - кодировка страницы определяется как win1251.
Вопрос к Вам:
Как из windows-1251 получить unicode (UTF-8), причем так, что и хедер страницы тоже был в UTF-8? Нужен более действенный способ.
Спасибо заранее.
|
|
|
22.09.2006, 20:50
|
|
Кирилл Хряпин
NetCat
Зарегистрирован: 2006-06-15
Сообщений: 207
|
Предлагаю такой способ:
Создаете макет дизайна.
В хедере пишете:
Код:";
ob_start();
echo "<?xml version='1.0' encoding='utf-8'?>
В футере:
Код:";
$page = ob_get_clean();
echo iconv("Windows-1251","UTF-8", $page);
echo "
Вызываете из Flash нужную Вам страницу с параметром ?template=XXXX, где XXXX - ID данного макета дизайна.
Разумеется, шаблон данных должен создавать валидный XML-код.
|
|
|
27.09.2006, 17:11
|
|
Гость
Гость
|
Попытался сделать так, как вы сказали. Не получилось.
Если, правда, я всЈ правильно делал. Все iconv я из шаблонов, следовательно, убрал.
проверял, не вызывая из флеша, просто по отображению страницы из нетката. Она ни в UTF-8 ни в windows-1251 не читалась нормально. он сделал какую-то левую кодировку.
Можете объяснить, что я сделал не так?
Проблема ещЈ вот в чем: эксплорер ТРЕБУЕТ, чтобы кодировка была указана ТОЛЬКО в хедере, а в самих шаблонах iconv следует убрать. А мазилла хочет все наоборот, то есть хедер и контент ИЛИ только КОНТЕНТ должны перекодироваться. То есть, если всЈ подогнать под эксплорер, в других браузерах ничего не работает.
Как решить эту проблему? может, существует другой способ перекодировки?
|