|
|
|
|
|
для: coloboc66
(09.09.2006 в 22:57)
| | Да, все так, как вы описали.
EncodeURIComponent - это функция JavaScript, которая кодирует строку, как компонент URL, т.е. некоторые символы в управляющие последовательности.
Я думаю, что кириллица в UTF как раз и должна быть закодирована для безопасной передачи.
Хотя может быть и ошибаюсь. Но так все работает :-)
http://www.w3schools.com/jsref/jsref_encodeURIComponent.asp | |
|
|
|
|
|
|
|
для: WebTech
(08.09.2006 в 17:53)
| | encodeURIComponent()- это что- метод ява-скрипт? Или что? В моем справочнике про это нет ничего... Все-равно не ясно, почему решилась проблема с кодировкой- серверный скрипт ведь никак не зависит от браузерного. Или у вас сервер получает данные в кириллице (обработанной с помощью encodeURIComponent), обрабатывает их и ответные данные тоже выдает в кириллице? Тогда объяснимо.
Вот это ваше $name- оно в кириллице, да? И в браузере вы делаете примерно так:
var name='Имя';
name=encodeURIComponent(name);
document.forms(0).name.value=name;
|
И это имя отсылаете, да? | |
|
|
|
|
|
|
|
для: 12345
(08.09.2006 в 14:17)
| | Проблема решилась :-)
В браузерном скрипте отправляемые данные закодировал с помощью encodeURIComponent(). На стороне сервера никаких перекодировок не использовал. И во всех браузерах теперь все правильно отображается :-)
Всем спасибо огромное! :-) | |
|
|
|
|
|
|
|
для: coloboc66
(08.09.2006 в 10:32)
| | Динамически его не хранят, а генерируют. Если переменная содержит с-1251, а выдаётся в UTF, то конечно, будет несоответствие. Очевидный вывод - надо перекодировать при выдаче. (Или хранить в UTF.) То, что константа идёт правильно - понятно, она или прекодируется автоматически, или страница файла PHP в UTF-е. Все вопросы про кодировку упираются в необходимость иметь функцию перекодировки, посмотрите здесь на форуме (в этой теме уже советовал, 2-й пост). | |
|
|
|
|
|
|
|
для: WebTech
(08.09.2006 в 10:29)
| | "Как его можно сохранить в UTF?"(динамически)- а вот это сложный вопрос. Может 12345 знает? А в РНР у вас стоит вот это?
header("Content-type: text/xml; charset=windows-1251");
|
И в html- файле 1251 тоже... | |
|
|
|
|
|
|
|
для: coloboc66
(07.09.2006 в 20:47)
| | У меня XML формируется динамически скриптом. Как его можно сохранить в UTF?
<?php
$name = $_GET['name']; // передается из браузера с помощью XMLHttpRequest
header ('Content-Type: text/xml');
echo '<?xml version="1.0" encoding="UTF-8"?>';
echo '<response>';
echo 'Некий текст, который формируется динамически'.$name;
echo '</response>';
?>
|
Это мой скрипт, который формирует ответ в XML. Дело в том, что вот эта $name выглядит потом в браузере кракозябрами, а строка "Некий текст, который формируется динамически" выглядит нормально. | |
|
|
|
|
|
|
|
для: WebTech
(07.09.2006 в 18:27)
| | Я думаю- в html и РНР-док-е надо ставить windows-1251, а в xml-док-е надо ставить UTF-8 и сохранять его в UTF-8. | |
|
|
|
|
|
|
|
для: coloboc66
(07.09.2006 в 09:17)
| | Решил проблему с оперой. Оказывается я писал код в ANSI :-) Перекодировал все в UTF-8 и в опере заработало! Текст стал правильно отображаться. Зато в фоксе испортилось :-( Я ничего не понимаю.
Как вообще надо расставлять эти кодировки? В браузере какой charset надо выставлять?
Может быть мне прислать код полностью? | |
|
|
|
|
|
|
|
для: WebTech
(06.09.2006 в 18:20)
| | А попробуйте в файле РНР вот это поставить, может- поможет...
header("Content-type: text/html; charset=windows-1251");
|
Нужно ставить вверху файла перед всеми операторами. | |
|
|
|
|
|
|
|
для: coloboc66
(06.09.2006 в 17:19)
| | XML создаю на сервере в PHP
<?php
header ('Content-Type: text/xml');
// заголовок XML
echo '<?xml version="1.0" encoding="windows-1251" ?>';
echo '<response>';
// здесь просто текст
echo '</response>';
?>
|
А разбираю потом следующим образом
res = request.responseXML;
doc_el = res.documentElement;
message = doc_el.firstChild.data;
// дальше вывод
|
Я пробовал ставить UTF-8 - получаются кракозябры в любом браузере. А если поставить koi или windows-1251, то IE и фокс нормально все показывают, а опера нет. | |
|
|
|
|