Полезная информация

Список ответов на каверзные вопросы можно получить в FAQ-разделе форума.
  • Форумы
  •  » Разработка
  •  » Проблемы кодировки при передаче данных методом post из расширения.

№117-12-2008 13:23:15

Орец
Участник
 
Группа: Members
Зарегистрирован: 18-08-2006
Сообщений: 84
UA: Firefox 3.0

Проблемы кодировки при передаче данных методом post из расширения.

Пишу в расширении функцию отправки данных на сайт. Т.к. объём может быть большой, то использую метод POST.
  Всё работает, но возникла проблема  с кодировкой. Данные отправляются в кодировке Windows-1251, приходит абракодабра. Использовал приведённый на форуме перекодировщик, не помогло, приходит тоже абракодабра, но другая.

В чём может быть моя ошибка?


Конвертор:

Выделить код

Код:

function convertor(str)
{
var converter = Components.classes["@mozilla.org/intl/scriptableunicodeconverter"]
                          .createInstance(Components.interfaces.nsIScriptableUnicodeConverter);
converter.charset = "Windows-1251";//"windows-1251"
str = converter.ConvertFromUnicode(str);
return str;
}

Отправка данных.

Выделить код

Код:

var hey='Сообщить о событии';
var name='Название на кириллице';
var text='Текст, тоже на кириллице ';

var http = new XMLHttpRequest();
var postdata= "name="+convertor(name)+"&safe="+hey+"&text="+convertor(text)+"&tip=4&action=post"; 

http.open("POST", "http://forum.mozilla-russia.org/edit.php?name="+name+"", true);
http.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
http.setRequestHeader("Content-length", postdata.length);

http.onreadystatechange = function() {//Call a function when the state changes.
   if(http.readyState == 4 && http.status == 200) {
      alert(http.responseText);
   }
}
http.send(postdata);

Отредактировано Орец (22-12-2008 16:59:04)

Отсутствует

 

№219-12-2008 15:48:58

Shutnik
Участник
 
Группа: Extensions
Зарегистрирован: 12-11-2005
Сообщений: 3785
UA: Firefox 3.1

Re: Проблемы кодировки при передаче данных методом post из расширения.

приходит тоже абракодабра, но другая.

какая - другая?

Выделить код

Код:

return str;

я бы заменил на

Выделить код

Код:

return escape(str);

Отсутствует

 

№322-12-2008 16:58:29

Орец
Участник
 
Группа: Members
Зарегистрирован: 18-08-2006
Сообщений: 84
UA: Firefox 3.0

Re: Проблемы кодировки при передаче данных методом post из расширения.

Shutnik, спасибо, помогло.
:rolleyes:

Отсутствует

 

№408-07-2009 17:40:38

eXeLe
Участник
 
Группа: Members
Зарегистрирован: 01-07-2009
Сообщений: 29
UA: Firefox 3.0

Re: Проблемы кодировки при передаче данных методом post из расширения.

пишу тулбар, в нем идет захват фразы для поиска (вводится пользователем). при поиске само собой абракадабра.
попробовал поставить конвертер, но при поиске конвертится в ASCII и вместо русского слова ищет что то типа "f2e5f1f2" (тест)
как исправить?

Добавлено 08-07-2009 17:47:51
либа как а = d0b0
и запрос "d182d0b5d181d182" вместо "тест"

Отсутствует

 

№510-07-2009 13:49:55

eXeLe
Участник
 
Группа: Members
Зарегистрирован: 01-07-2009
Сообщений: 29
UA: Firefox 3.0

Re: Проблемы кодировки при передаче данных методом post из расширения.

Данные браузеру шлются как UTF-8, пытаюсь ковертировать в windiws-1251 и нифига =(

Отсутствует

 

№610-07-2009 15:13:35

Anton
Участник
 
Группа: Extensions
Откуда: от верблюда
Зарегистрирован: 14-12-2004
Сообщений: 3057
UA: Firefox 3.5
Веб-сайт

Re: Проблемы кодировки при передаче данных методом post из расширения.

eXeLe пишет

Данные браузеру шлются как UTF-8

Их, может быть, сначал перекодировать в Unicod из UTF-8, а потом - в нужную кодировку ?


Время настанет, время придет...
И лис кОнкурiентов на части порвет !!!

Отсутствует

 

№710-07-2009 15:47:28

eXeLe
Участник
 
Группа: Members
Зарегистрирован: 01-07-2009
Сообщений: 29
UA: Firefox 3.0

Re: Проблемы кодировки при передаче данных методом post из расширения.

разобрался с проблемой, выкинул кое-какой код, из-за которого видимо не удавалось нормально перекодировать фразу.

Отредактировано eXeLe (10-07-2009 17:04:15)

Отсутствует

 

№810-07-2009 16:49:33

Anton
Участник
 
Группа: Extensions
Откуда: от верблюда
Зарегистрирован: 14-12-2004
Сообщений: 3057
UA: Firefox 3.5
Веб-сайт

Re: Проблемы кодировки при передаче данных методом post из расширения.

converter.charset = "UTF-8";
str = converter.ConvertToUnicode(str);

может быть даже будет достаточно и этого одного преобразования.

Отредактировано Anton (10-07-2009 16:55:48)


Время настанет, время придет...
И лис кОнкурiентов на части порвет !!!

Отсутствует

 
  • Форумы
  •  » Разработка
  •  » Проблемы кодировки при передаче данных методом post из расширения.

Board footer

Powered by PunBB
Modified by Mozilla Russia
Copyright © 2004–2020 Mozilla Russia GitHub mark
Язык отображения форума: [Русский] [English]