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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> и снова JsHttpRequest 
:(
    Опции темы
Ринат
Дата 25.8.2005, 03:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



простите достал уже всех с этой вещью, но хочется разобрться
все работает идеально, но если запрос идет в русской кодировке не проходит
к примеру, посылаю запрос вида "Россия" не работает, но "Russia" срабатывает
помогите разобраться до конца уж
спасибо всем за помощь!
PM MAIL   Вверх
DEER
Дата 25.8.2005, 09:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



надо с кодировкой разобраться поставить ее в windows-1251
не знаю как это выглядит в javascript, но в java это так:
Код

 request.setCharacterEncoding("windows-1251");



--------------------
 
PM MAIL WWW ICQ MSN   Вверх
Ринат
Дата 25.8.2005, 10:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



да нет стоит там все, вот строка как я понля определяет кодировку
$JsHttpRequest = new Subsys_JsHttpRequest_Php("windows-1251");
PM MAIL   Вверх
Рыжий
Дата 25.8.2005, 10:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Помешанный
***


Профиль
Группа: Завсегдатай
Сообщений: 1423
Регистрация: 19.9.2004

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



Ринат
Имхо это недостаток JSHTTPRequest - проблема с кодировками, там вручную на php нужно дописывать перекодировщик. Посмотри пример Sardar`a про JSInteractiveRequest - там с кодировками все ОК!
PM MAIL ICQ   Вверх
Ринат
Дата 25.8.2005, 11:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



да обязательно, сейчас гляну
PM MAIL   Вверх
Sardar
Дата 25.8.2005, 14:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бегун
****


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

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



По моему в последних версиях русский текст приходит как юникод(%uHHHH), если же на сервере не выставить правильную кодировку, то юникод побьёться. Правда не все браузеры отдают текст так, Опера если не ошибаюсь одаёт как %HH в локальной кодировке. Поэтому у меня используеться encodeURIComponent, но функция не доступна в старых браузерах(а нафига им AJAX? smile )

Не советую использовать JSInteractiveRequest 1.0, у него ошибка в Опере 8, как и у й JSHttpRequest. Котеров пофиксил это через использованиe XMLHttpRequest - хороший выход. Вскоре обновлю свою либу. Но сейчас можете выдрать функции сериализации и десериализации значений JS-PHP, проблем с кодировками(как и со сложными структурами, засорениями $_REQIEST пространства и т.д) не будет.


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


Шустрый
*


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

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



да интересно, а где это все лежит, где исходники
спасибо
Добавлено @ 14:54
от нашел этот кусочек,
Код

JSInteractiveRequest._escape=function(data) {
  if(typeof(data)=="number") return data.toString().replace(/([12345])/g, "5$1");
  else if(typeof(data)=="undefined") return "";
  else if(typeof(data)=="boolean") return data? "true":"";
  else if(typeof(data)=="string") return encodeURIComponent(data.toString().replace(/([12345])/g, "5$1"));
  else if(typeof(data)=="object") {
    if(data==null) return "";
    var d=[], tok="";
    if(data instanceof Array) {
       for(var i=0; i<data.length; i++) d[d.length]=JSInteractiveRequest._escape(data[i]);
    } else {
      for(i in data)
        d[d.length]=JSInteractiveRequest._escape(i.replace(/^\~/, ""))+"4"+JSInteractiveRequest._escape(data[i]);
    }
    return "1"+d.join("3")+"2";
  } return "";
}

JSInteractiveRequest.prototype._unescape=function(data) {
  if(typeof(data)=="string") return decodeURIComponent(data);
  if(typeof(data)=="object"&&data!=null) {
     if(data instanceof Array)
       for(var i=0; i<data.length; i++) data[i]=JSInteractiveRequest.prototype._unescape(data[i]);
     else {
       var ret = {};
       for(var i in data) ret[JSInteractiveRequest.prototype._unescape(i)]=JSInteractiveRequest.prototype._unescape(data[i]);
       return ret;
     }
  }
  return data;
}

если не ошибся, он, но там стоит не юзать...что делать
PM MAIL   Вверх
Sardar
Дата 26.8.2005, 00:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бегун
****


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

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



Цитата
если не ошибся, он, но там стоит не юзать...что делать

Ринат говори ясно, уже второй пост читаю и не вурбаюсь.
Кодер на JS потребует декодера на PHP, так что серверный _unescape тебе тоже понадобиться.


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


Шустрый
*


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

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



ок ясно, в твоей разработке есть?
прости за ликбез
PM MAIL   Вверх
Sardar
Дата 26.8.2005, 02:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бегун
****


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

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



Цитата
в твоей разработке есть?

Что есть? Млин говори прямо и чётко! smile

Есть ли распаковка? Естественно, иначе кто всю эту лабуду от клиента разбирать будет. Там свой особый алгоритм, позволяющий эффективно(кратко) упаковать любые структуры(кроме тех, что имеют рекурсивные ссылки). Ещё бы сжатие добавить, вообще было бы хорошо smile


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


 




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


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

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