Re: ajax - кодировка
От: Hazg  
Дата: 08.02.07 08:47
Оценка: 9 (1)
Сам написал, сам отвечаю Значица, вместо суммари:
Объекту XmlRequest (и ms и остальным) нужны не только заголовки в запросе, но и валидный код (валидный соответственно заголовкам.) Не знаю как для вас, но для меня это было открытие. нет, с xml все понятно, данные, структура... Но требовать валидного html? Требует. Проблема с кодировками решилась очень просто:
Запрашиваемый документ должен отдаваться в виде (если запрашивается text/html, естессно.):
<html><head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251" />
</head>
<body>текст в виндовой кодировке</body>
</html>


Спорить с этим сложно, так как после вышеперечисленного страницы нормально показываются в win кодировке в opera, ff, ie, linux ff, konqueror, и даже safari webkit. Забираеться в win и показывается в win.

P.S. Я с ajax'ом знаком первую неделю, и возможно сделал открытие велосипеда. Но почему все настаивают на unicode, который, похоже, просто выдается корректно, как бы не был некорректен ответ на запрос?
ajax - кодировка
От: Hazg  
Дата: 07.02.07 10:32
Оценка:
Я честно поискал на форуме, в гугле и теперь пришел к вам. Что есть:
сайт php, отдает страницы в win кодировке. Так же есть часть сайта, на так называемом ajax'е. У меня на машине под всеми браузерами (кроме konqueror в виртуальном linux) все ок, а у нескольких пользователей с ie6 русским походу хромает кодировка того что сайт накачивает через ajax ("MSXML2.XMLHttp.5.0","MSXML2.XMLHttp.4.0","MSXML2.XMLHttp.3.0","MSXML2.XMLHttp","Microsoft.XMLHttp", XMLHttpRequest). Видимо, надо проставить где то кодировку. Как?
так пробовал: httprequest.setRequestHeader('Content-Type: text/xml; charset=windows-1251');
Re: ajax - кодировка
От: Mamut Швеция http://dmitriid.com
Дата: 07.02.07 13:11
Оценка:
H>Я честно поискал на форуме, в гугле и теперь пришел к вам. Что есть:
H>сайт php, отдает страницы в win кодировке. Так же есть часть сайта, на так называемом ajax'е. У меня на машине под всеми браузерами (кроме konqueror в виртуальном linux) все ок, а у нескольких пользователей с ie6 русским походу хромает кодировка того что сайт накачивает через ajax ("MSXML2.XMLHttp.5.0","MSXML2.XMLHttp.4.0","MSXML2.XMLHttp.3.0","MSXML2.XMLHttp","Microsoft.XMLHttp", XMLHttpRequest). Видимо, надо проставить где то кодировку. Как?
H>так пробовал: httprequest.setRequestHeader('Content-Type: text/xml; charset=windows-1251');

Сам PHP должен еще выдавать что-то типа:
<?php 
    header('Content-type: text/xml; charset=win-1251');
?>


А вообще лучше отдавать все в Юникоде


dmitriid.comGitHubLinkedIn
Re[2]: ajax - кодировка
От: ddocker Россия www.codelab.ru
Дата: 07.02.07 13:43
Оценка:
M>Сам PHP должен еще выдавать что-то типа:
M>
M><?php 
M>    header('Content-type: text/xml; charset=win-1251');
M>?>
M>


M>А вообще лучше отдавать все в Юникоде

кстати а в 2-х словах как там у разных браузеров с кодировкой при ajax-е: ie плохо(глючно или вообще нет) поддерживает все кроме utf-8, а лиса и опера нормально с другими кодировками работают?
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Re[2]: ajax - кодировка
От: Hazg  
Дата: 07.02.07 15:43
Оценка:
M>
M><?php 
M>    header('Content-type: text/xml; charset=win-1251');
M>?>
M>

есть. естессно есть. сам пишу и вижу, что ошибаюсь. text/xml; Будем пробовать Все спасибо после.

M>А вообще лучше отдавать все в Юникоде

Хм. Как я понимаю, в отдавая в юникоде мы получаем почти в два раза больше траффика??? А зачем тогда вообще ajax нужен? Из-за моды? Нет уж. Сайт кроме русского других языков знать не должен, значит юникод и не нужен.
Re[3]: ajax - кодировка
От: . Великобритания  
Дата: 07.02.07 16:40
Оценка:
Hazg wrote:

> больше траффика??? А зачем тогда вообще ajax нужен? Из-за моды? Нет уж.

> Сайт кроме русского других языков знать не должен, значит юникод и не нужен.
По правилам русского языка кавычки должны быть «такими», а длинное тире — такое, а не "-" такое.
Конечно, всё это в однобайтовые кодировки не входит... только юникод.

А то что трафик больше — установите gzip.
Posted via RSDN NNTP Server 2.0
но это не зря, хотя, может быть, невзначай
гÅрмония мира не знает границ — сейчас мы будем пить чай
Re[3]: ajax - кодировка
От: Mamut Швеция http://dmitriid.com
Дата: 08.02.07 08:00
Оценка:
M>>А вообще лучше отдавать все в Юникоде
D>кстати а в 2-х словах как там у разных браузеров с кодировкой при ajax-е: ie плохо(глючно или вообще нет) поддерживает все кроме utf-8, а лиса и опера нормально с другими кодировками работают?

У меня недавно ИЕ не поддержал меня с utf-8 Правда, это могут быть проблемы jQuery, которой я пользуюсь, а простого способа проверить это под ИЕ нет

Так что не знаю


dmitriid.comGitHubLinkedIn
Re[2]: ajax - кодировка
От: PGG Россия http://pavel.gorlov.name
Дата: 13.05.07 11:47
Оценка:
Добрый день! А уменя другая беда. Я работаю с DOJO Ajax'ом, и при аякс-посте текст из форм мой win1251 страницы конвертится в карявы типа това, Я перерыл всё, я незнаю как побороть этот баг. Страница win1251, на сервере .php тоже 1251, а от страницы уходит това...... Что делать, как быть?
Re[3]: ajax - кодировка
От: PGG Россия http://pavel.gorlov.name
Дата: 13.05.07 11:59
Оценка:
Подробнее, пишу в input формы к примеру "Текст", dojo перед постом конвертит в
& #1090;& #1086;& #1074;& #1072;& #1090;& #1086; & #1074;& #1072;


незнаю как отключить или как в php из этого сделать нормальный 1251

p.s. пробел между & и # я поставил специально для того что бы текст не преобразовывался в обычный...
Re[4]: ajax - кодировка
От: Hazg  
Дата: 13.05.07 20:12
Оценка:
echo decode_unicoded_russian("& #1090;& #1086;& #1074;& #1072;& #1090;& #1086;& #1074;& #1072;");//Пробелы убрать!!!

function decode_unicoded_russian($str) 
{
    $decode="";
    $ar=split("&#",$str);
    foreach ($ar as $value ) 
    {
        $in1=strpos($value,";");
        if ($in1>0) 
        {
            $code=substr($value,0,$in1);
            if ($code>=1040 and $code<=1103) 
            {
                $code=$code-848;
                $xchr=chr($code);
            } 
            else 
            {
                $xchr="&#" . $code . ";";
            } 
            $xchr=$xchr . substr($value,$in1+1);   
        }
        else
            $xchr = $value;
        $decode=$decode . $xchr;
    }
    return $decode;
}

Лежит на php.net в примерах. Чесно говоря сейчас я не особо в контексте ) так что, если глупость сморозил извиняй. (it's work). Че касается твоей библиотечки.... Фиг знает. Не пользовался.
P.S. Что за товатова такая? Э так ее хотел увидеть в нормальном декодированном виде )))
Если вопросы остались, пиши
Re[2]: ajax - кодировка
От: Mamut Швеция http://dmitriid.com
Дата: 14.05.07 07:03
Оценка:
Здравствуйте, Hazg, Вы писали:

H>Сам написал, сам отвечаю Значица, вместо суммари:

H>Объекту XmlRequest (и ms и остальным) нужны не только заголовки в запросе, но и валидный код (валидный соответственно заголовкам.) Не знаю как для вас, но для меня это было открытие. нет, с xml все понятно, данные, структура... Но требовать валидного html? Требует.

Кстати. Есть еще одна фишка с валидным ХТМЛем. Если пришедший ответ с сервера будет вставляться в документ, то для IE в таблицах обязательно надо ставить <tbody> Я на это нарвался здесь


dmitriid.comGitHubLinkedIn
Re[5]: ajax - кодировка
От: PGG Россия http://pavel.gorlov.name
Дата: 14.05.07 07:05
Оценка:
H>Лежит на php.net в примерах. Чесно говоря сейчас я не особо в контексте ) так что, если глупость сморозил извиняй. (it's work). Че касается твоей библиотечки.... Фиг знает. Не пользовался.
H>P.S. Что за товатова такая? Э так ее хотел увидеть в нормальном декодированном виде )))
H>Если вопросы остались, пиши

Спасибо! Это то, что нужно, хотя правда интересно почему такая ерудна происходит перед отправкой.
А "това" это и есть карявки, которые RSDN преобразовал в нормальный вид.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.