Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   отправка запроса в нужной кодировке (https://javascript.ru/forum/misc/16894-otpravka-zaprosa-v-nuzhnojj-kodirovke.html)

Raz0r 27.04.2011 11:48

отправка запроса в нужной кодировке
 
здравствуйте.

никак не могу разгадать в какой кодировке нужно отправлять русские названия на imdb.com для поиска, перебрал уже много, всегда символы коверкаются и поиск не ищет.

http://www.imdb.com/search/

в исходном коде странице указана кодировка
<meta http-equiv="content-type" content="text/html; charset=iso-8859-1">


однако, если даже на сайте производить поиск по русскому названию(например "Елки")
в строке браузера получаем:
http://www.imdb.com/find?s=all&q=%26%231045%3B%26%231083%3B%26%231082%3B%26%231080%3B

в строке поиска на сайте:
&#1077;&#1083;&#1082;&#1080;

и соотвественно No Matches.

как решить эту проблему?
пробовал разные методы escape(); и encodeURI() и encodeuricomponent() в этом случае получаем кракозябры также..

melky 27.04.2011 13:35

д получается, когда php Отображает html сущности буквально


urldecode( ) пробовали?

Raz0r 27.04.2011 17:09

Цитата:

Сообщение от melky
urldecode( ) пробовали?

это же на пхп, а мне js
я пробовал decodeuri(), не помогло

пробовал http://javascript.ru/php/utf8_decode
но почему-то с русскими не работает '??" выдает

melky 27.04.2011 17:31

// обойдем парсер
var c = "&#"+"1076;"+"&#"+"1079;";


var matches = c.match(/\d+/g) ;

var str = '';

for( var i = 0,b = matches.length; i<b; i++) str += String.fromCharCode( matches[i] );


alert( "была строка : "+c+ "\n\nстала : "+ str)



а вот функция

var c = "&#"+"1076;"+"&#"+"1079;";

function toStr ( c ){

var matches = c.match(/\d+/g), str = '';

for( var i = 0,b = matches.length; i<b; i++) str += String.fromCharCode( matches[i] );

return str;

}


alert( "была строка : "+c+ "\n\nстала : "+ toStr(c) )

Raz0r 27.04.2011 17:46

за функцию спасибо, только видимо проблема в самом Imdb.com, ибо строка отправляется верно, а принимается там с кракозябрами

Цитата:

åëêè

melky 27.04.2011 17:48

зачем вам кодировка ISO??? пусть будет UTF-8,и черт с ней.

и проблемы с кодировкой AJAX уйдут)

Raz0r 27.04.2011 17:58

Цитата:

Сообщение от melky
зачем вам кодировка ISO??? пусть будет UTF-8,и черт с ней.

да мне не зачем, я лишь указал, что этот сайт использует данную кодировку.

вот искал решение, как строку отправить, но видимо на их строне неправильне символы обрабатываются, потому как либо
&#1077;&#1083;&#1082;&#1080

либо
åëêè

даже при ручном поиске с сайта.

Kolyaj 27.04.2011 18:01

Создатели сайта не знают, что кроме английского есть и другие языки. Всё нормально, привет из 90-х.


Часовой пояс GMT +3, время: 00:44.