Проблема с кириллицей в GET-запросе

  • Автор темы Автор темы GrandT
  • Дата начала Дата начала

GrandT

Client
Регистрация
23.07.2014
Сообщения
160
Реакции
64
Баллы
28
Почему при GET-запросе кириллические символы в URL кодируются вот так

кÐ%B0кÐ%B0я%20Ñ%82о%20непоняÑ%82нÐ%B0я%20кодировкÐ%B0

вместо

%D0%BD%D0%B5%D0%BF%D0%BE%D0%BD%D1%8F%D1%82%D0%BD%D0%B0%D1%8F

Вставляю в адресную строку обычного браузера тот же запрос, в сниффере показывает правильный вариант. Если делаю через экшен GET-запрос в зенно, то выходят крякозябры.

Как решить данную проблему?
 
Если в запросе только латинские символы, то проблем не возникает.
 
Через обычный экшен "переход на страницу" запрос отправляется правильно. Но в GET почему-то конвертит неверно.

Пример правильного запроса:
Код:
Развернуть Свернуть Копировать
http://site.com/get?param&text=%D0%BA%D0%B0%D0%BA%D0%B0%D1%8F%20%D1%82%D0%BE%20%D0%BD%D0%B5%D0%BF%D0%BE%D0%BD%D1%8F%D1%82%D0%BD%D0%B0%D1%8F%20%D0%BA%D0%BE%D0%B4%D0%B8%D1%80%D0%BE%D0%B2%D0%BA%D0%B0

Как конвертирует его экшен GET-запрос:
Код:
Развернуть Свернуть Копировать
http://site.com/get?param&text=кÐ%B0кÐ%B0я%20Ñ%82о%20непоняÑ%82нÐ%B0я%20кодировкÐ%B0

Пробовал urlencode перед отправкой - то же самое.
 
Как сделать GET-запрос без изменения исходящей кодировки?
 
Сделал временный костыль с помощью wget. Но тема все еще актуальна
 
так ты сначала перекодируй кирилицу через си шарп ищи по форуму - url encode
А по поводу почему косо кодирует, думаю кирилица должна бить в утф 8 (толь с бом толи без я не помню точно )
Дак строку перед зананьям можно перекодировть не меняя источник
 
очень странно. у вас либо версия ниже 5753 и вы отправляете без кодирования либо я без понятия
покажите не то что фидлер видит, а то что вы реально отправляете в строке запроса: значение переменной, если вы передеате из переменной либо значение поля если вы сразу же в поле вписали.
 
Да кодировал уже в url encode. Кодировки тоже разные выбирал.
очень странно. у вас либо версия ниже 5753 и вы отправляете без кодирования либо я без понятия
покажите не то что фидлер видит, а то что вы реально отправляете в строке запроса: значение переменной, если вы передеате из переменной либо значение поля если вы сразу же в поле вписали.
Попробуйте сделать например вот такой запрос:
Код:
Развернуть Свернуть Копировать
http://zennolab.com/get?param&text=%D0%BA%D0%B0%D0%BA%D0%B0%D1%8F%20%D1%82%D0%BE%20%D0%BD%D0%B5%D0%BF%D0%BE%D0%BD%D1%8F%D1%82%D0%BD%D0%B0%D1%8F%20%D0%BA%D0%BE%D0%B4%D0%B8%D1%80%D0%BE%D0%B2%D0%BA%D0%B0
И посмотрите как он отправляется
Лично у меня так:
Код:
Развернуть Свернуть Копировать
http://zennolab.com/get?param=&text=кÐ%B0кÐ%B0я%20Ñ%82о%20непоняÑ%82нÐ%B0я%20кодировкÐ%B0

Версия 5.8.0.2
 
на 5753 все норм, похоже это баг, стоит попробовать самую последнюю версию либо откатиться назад.
 
на 5753 все норм, похоже это баг, стоит попробовать самую последнюю версию либо откатиться назад.

на самой последней версии это выглядит вот так:
Код:
Развернуть Свернуть Копировать
http://zennolab.com/get?param=&text=РєР%B0РєР%B0СЏ%20С%82Рѕ%20непоняС%82РЅР%B0СЏ%20РєРѕРґРёСЂРѕРІРєР%B0

и, как заметил GrandT, при запросе через сторонний браузер (или через встроенный в зенно) сниффер ловит правильный запрос
 
на 5.8.7.0 нет проблем с urlencode
вчера тестил
прикладывайте пример
 
А как решить с перекодировкой вопрос?
Вот есть например сайт: сайт.рф
get запрос на кирилицу не работает, (ну или что-то делаю не так) а в таком виде работает http://xn--80aswg.xn--p1ai/ (копирую из строки браузера)
Как перевести название сайта в такой вид? Чтобы делать get
 
А как решить с перекодировкой вопрос?
Вот есть например сайт: сайт.рф
get запрос на кирилицу не работает, (ну или что-то делаю не так) а в таком виде работает http://xn--80aswg.xn--p1ai/ (копирую из строки браузера)
Как перевести название сайта в такой вид? Чтобы делать get
urlencode пробовали?
 
Дабы не плодить тему хочу задать вопрос здесь. Есть несколько сайтов в различной кодировке, часть в utf, часть в вин-1251. Get запросом с установленной кодировкой utf выдираю из хедера прописанную кодировку. Если utf - обрабатываю дальше, если win-1251 - делаю новый get запрос к странице с параметром кодировке уже win-1251. Дальше вопрос. Полученные данные в какой кодировке? Думал в win1251, но при кjнвертации из win1251 в utf получаются вопросительные знаки.
 
Дабы не плодить тему хочу задать вопрос здесь. Есть несколько сайтов в различной кодировке, часть в utf, часть в вин-1251. Get запросом с установленной кодировкой utf выдираю из хедера прописанную кодировку. Если utf - обрабатываю дальше, если win-1251 - делаю новый get запрос к странице с параметром кодировке уже win-1251. Дальше вопрос. Полученные данные в какой кодировке? Думал в win1251, но при кjнвертации из win1251 в utf получаются вопросительные знаки.
Не припомню вроде бы, чтобы при работе с сайтом с windows-1251 кодировкой после запроса результат нужно было конвертировать в UTF. А если не делать конвертирование каков результат?
 
Не припомню вроде бы, чтобы при работе с сайтом с windows-1251 кодировкой после запроса результат нужно было конвертировать в UTF. А если не делать конвертирование каков результат?
В том то вопрос, все данные с разных сайтов(различные кодировки) надо сохранить в один файл, соответственно привести их к одной кодировки. Похоже что все полученные данные уже в utf, главное правильно прописать кодировку в get запросе, но точно не знаю.
 
В том то вопрос, все данные с разных сайтов(различные кодировки) надо сохранить в один файл, соответственно привести их к одной кодировки. Похоже что все полученные данные уже в utf, главное правильно прописать кодировку в get запросе, но точно не знаю.
Зеннопостер внутри себя работает в UTF независимо от того в какой кодировке происходит запрос.
Пробуйте сохранять данные без конвертирования.
 

Кто просматривает тему: (Всего: 0, Пользователи: 0, Гости: 0)