Как я могу декодировать URL, который не закодирован в UTF8 с помощью API Firefox Addons? - PullRequest
3 голосов
/ 03 мая 2011

Я пытаюсь написать аддон для Firefox и только что столкнулся с этой проблемой.

Похоже, что Firefox кодирует URL-адрес поисковой системы с помощью кодировки сайта, предположим, у нас есть слово «word», это означает «огонь» на китайском языке, и мы ищем его с помощью Google, URL-адрес -

http://www.google.com/search?q=g+火&ie=utf-8 ... 

Этот URL-адрес декодируется / не экранируется с помощью UTF8, но если я перейду к Baidu, китайской поисковой системе с кодировкой gb2312, мы получим URL-адрес

http://www.baidu.com/s?wd=%BB%F0

Здесь BBF0 - это код gb2312 для '火',

Как я могу получить символ UTF8 из некоторого кодирования (gbk, jp или чего-либо еще) с помощью Firefox API? Я просмотрел часть nsIScriptableUnicodeConverter на веб-сайте develop.mozilla.org и просто не могу найти подходящий способ сделать это.

1 Ответ

1 голос
/ 04 мая 2011

хорошо, меня должно смущать то, как firefox кодирует свой URL, но я только что нашел

var converter = Components.classes["@mozilla.org/intl/scriptableunicodeconverter"].createInstance(Components.interfaces.nsIScriptableUnicodeConverter);
converter.charset = "gbk";
var car = "%D6%D0%B9%FA";
alert(converter.ConvertToUnicode(unescape("%D6%D0%B0%FA")));

сделает свое дело ...

...