Модераторы: Sardar, Aliance
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Вопрос по кодировкам в AJAX 
:(
    Опции темы
boombick
Дата 10.10.2006, 09:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 305
Регистрация: 20.4.2005
Где: Moscow, Russia

Репутация: нет
Всего: 9



Поиском пользовалься, но, вероятно, плохо пользовался потому что ничего не нашел...
Суть проблемы вот в чем:
При помощи AJAX формирую простой GET-запрос на сервер...
По идее данные приходят в юникоде, поэтому на стороне сервера делаю прекодировку
Код

$data = libiconv("UTF-8", "CP1251", $data);

И кладу все в базу...
Проблема вот в чем: из оперы и IE текст нормально приходит в юникоде, перекодируется и кладется в базу в оптимальном виде.. А из firefox приходит что-то непонятное вида я-п?я? - это строка "тест". Естественно, перекодировки не происходит...
Такая фигня творится только с Firefox. 
Для работы с ajax использую prototype, запрос делаю вот так:
Код

var request = new Ajax.Request(url, { method: 'get', parameters: pars, onComplete: trueFunc});

Но даже если ajax не использовать, а руками вбить в адресную строку браузера Get-запрос, все равно данные приходят в непонятном виде...
Помогите плиз!


--------------------
Все вышесказанное - имхо, и на истину в последней инстанции не претендует
------
UNIX and other
PM MAIL WWW ICQ   Вверх
pythonwin
Дата 10.10.2006, 11:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник
Сообщений: 2529
Регистрация: 18.4.2006
Где: за компом

Репутация: 1
Всего: 36



я использую технологию AJAX в TurboGears (фрэймворк для питона под веб) и каких-то проблем с ним не было и вспомнить не могу.

Думаю что тут также - видимо ты запутался с кодировками.
PM WWW GTalk Jabber   Вверх
12345c
Дата 10.10.2006, 11:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Круглый
****


Профиль
Группа: Vingrad developer
Сообщений: 2018
Регистрация: 26.12.2005
Где: наша не пропадала ?

Репутация: 57
Всего: 101



Тема всесторонне и многократно обсуждалась, дело в том, что XmlHttpRequest передаёт данные всегда в Unicode, поэтому перекодировать нужно на клиенте. Поиск по словам: "кодировка XmlHttpRequest" в "Javascripts" (форма вверху)
PM WWW   Вверх
pythonwin
Дата 11.10.2006, 13:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник
Сообщений: 2529
Регистрация: 18.4.2006
Где: за компом

Репутация: 1
Всего: 36



проблема решена?
PM WWW GTalk Jabber   Вверх
Sardar
Дата 11.10.2006, 15:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бегун
****


Профиль
Группа: Модератор
Сообщений: 6986
Регистрация: 19.4.2002
Где: Нидерланды, Groni ngen

Репутация: 78
Всего: 317



boombick, попробуй текст закодировать через encodeURIComponent(текст). Хотя по идее лиса должна делать это сама...


--------------------
 Опыт - сын ошибок трудных  © А. С. Пушкин
 Процесс написания своего велосипеда повышает профессиональный уровень программиста. © Opik
 Оценить мои качества можно тут.
PM   Вверх
boombick
Дата 16.10.2006, 08:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 305
Регистрация: 20.4.2005
Где: Moscow, Russia

Репутация: нет
Всего: 9



Пока не решена, сегодня отпишусь о результатах использования encodeURIComponent

Это сообщение отредактировал(а) boombick - 16.10.2006, 08:38


--------------------
Все вышесказанное - имхо, и на истину в последней инстанции не претендует
------
UNIX and other
PM MAIL WWW ICQ   Вверх
Red Wind
Дата 23.11.2006, 21:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 280
Регистрация: 25.6.2004
Где: Минск

Репутация: нет
Всего: 2



У меня была похожая проблема я всё решил с помощю одной сторчи в web.config. Конечно, это решение только для asp.net.
Код

<system.web>
    <globalization requestEncoding="utf-8" responseEncoding="utf-8" fileEncoding="windows-1251" />
</system.web>

А ещё, можно поковырять настройки кодировок у вашего сервера.

Это сообщение отредактировал(а) Red Wind - 23.11.2006, 21:20
PM MAIL ICQ   Вверх
pythonwin
Дата 24.11.2006, 08:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник
Сообщений: 2529
Регистрация: 18.4.2006
Где: за компом

Репутация: 1
Всего: 36



Red Wind, класс!
Может легче просто на клиенте использовать utf-8 ?
PM WWW GTalk Jabber   Вверх
Red Wind
Дата 25.11.2006, 00:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 280
Регистрация: 25.6.2004
Где: Минск

Репутация: нет
Всего: 2



Спасибо!
pythonwin, не совсем понял вопрос...
Этой строкой мы заставляем .net  воспинимать всё что приходит к нам от клиента, и всё что уходит от сервера клиенту как utf-8. На сколько я знаю, все строковые переменные в JavaScript тоже в юникоде. Следовательно, все строки идущие на сервер от клиента будут в юникоде. А следовательно, не надо производить никаких перекодировок руками. По-моему, проще некуда. Я ответил на ваш вопрос?
PM MAIL ICQ   Вверх
tolik777
Дата 9.1.2007, 11:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 133
Регистрация: 19.6.2006

Репутация: 1
Всего: 2



Тоже такая проблема. В FireFox не приходят данные. Пробовал и указывать:
http_request.setRequestHeader("Content-Type","charset=UTF-8");
и так пробовал:
http_request.setRequestHeader("Content-Type","charset=windows-1251");
Но данные приходят только тогда, когда этих строчек вообще нет. Но тогда в некоторых других браузерах не работает.
Хотя передаю только цифры.
А на функцию EncodeURIComponent , FireFox ругается: Ошибка: EncodeURIComponent is not defined
Никак не пойму как сделать универсальный код под все три браузера

PM MAIL WWW ICQ   Вверх
Sardar
Дата 9.1.2007, 15:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бегун
****


Профиль
Группа: Модератор
Сообщений: 6986
Регистрация: 19.4.2002
Где: Нидерланды, Groni ngen

Репутация: 78
Всего: 317



Цитата(tolik777 @  9.1.2007,  10:34 Найти цитируемый пост)
FireFox ругается: Ошибка: EncodeURIComponent is not defined

encodeURIComponent - это метод window (глобальная функция).


--------------------
 Опыт - сын ошибок трудных  © А. С. Пушкин
 Процесс написания своего велосипеда повышает профессиональный уровень программиста. © Opik
 Оценить мои качества можно тут.
PM   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Форум для вопросов, которые имеются в справочниках, но их поиск вызвал затруднения, или для разработчика требуется совет или просьба отыскать ошибку. Напоминаем: 1) чётко формулируйте вопрос, 2) приведите пример того, что уже сделано, 3) укажите явно, нужен работающий пример или подсказка о том, где найти информацию.
 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | JavaScript: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0566 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.