Страницы: 1
Пишу в расширении функцию отправки данных на сайт. Т.к. объём может быть большой, то использую метод 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)
Отсутствует
приходит тоже абракодабра, но другая.
какая - другая?
я бы заменил на
Отсутствует
пишу тулбар, в нем идет захват фразы для поиска (вводится пользователем). при поиске само собой абракадабра.
попробовал поставить конвертер, но при поиске конвертится в ASCII и вместо русского слова ищет что то типа "f2e5f1f2" (тест)
как исправить?
Добавлено 08-07-2009 17:47:51
либа как а = d0b0
и запрос "d182d0b5d181d182" вместо "тест"
Отсутствует
Данные браузеру шлются как UTF-8
Их, может быть, сначал перекодировать в Unicod из UTF-8, а потом - в нужную кодировку ?
Время настанет, время придет...
И лис кОнкурiентов на части порвет !!!
Отсутствует
разобрался с проблемой, выкинул кое-какой код, из-за которого видимо не удавалось нормально перекодировать фразу.
Отредактировано eXeLe (10-07-2009 17:04:15)
Отсутствует
converter.charset = "UTF-8";
str = converter.ConvertToUnicode(str);
может быть даже будет достаточно и этого одного преобразования.
Отредактировано Anton (10-07-2009 16:55:48)
Время настанет, время придет...
И лис кОнкурiентов на части порвет !!!
Отсутствует
Страницы: 1