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

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-запрос в зенно, то выходят крякозябры.

Как решить данную проблему?
 

GrandT

Client
Регистрация
23.07.2014
Сообщения
160
Благодарностей
64
Баллы
28
Если в запросе только латинские символы, то проблем не возникает.
 

GrandT

Client
Регистрация
23.07.2014
Сообщения
160
Благодарностей
64
Баллы
28
Через обычный экшен "переход на страницу" запрос отправляется правильно. Но в 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 перед отправкой - то же самое.
 

GrandT

Client
Регистрация
23.07.2014
Сообщения
160
Благодарностей
64
Баллы
28
Как сделать GET-запрос без изменения исходящей кодировки?
 

GrandT

Client
Регистрация
23.07.2014
Сообщения
160
Благодарностей
64
Баллы
28
Сделал временный костыль с помощью wget. Но тема все еще актуальна
 

svaminar

Client
Регистрация
21.08.2013
Сообщения
834
Благодарностей
379
Баллы
63
так ты сначала перекодируй кирилицу через си шарп ищи по форуму - url encode
А по поводу почему косо кодирует, думаю кирилица должна бить в утф 8 (толь с бом толи без я не помню точно )
Дак строку перед зананьям можно перекодировть не меняя источник
 

LexxWork

Client
Регистрация
31.10.2013
Сообщения
1 190
Благодарностей
792
Баллы
113
очень странно. у вас либо версия ниже 5753 и вы отправляете без кодирования либо я без понятия
покажите не то что фидлер видит, а то что вы реально отправляете в строке запроса: значение переменной, если вы передеате из переменной либо значение поля если вы сразу же в поле вписали.
 

GrandT

Client
Регистрация
23.07.2014
Сообщения
160
Благодарностей
64
Баллы
28
Да кодировал уже в 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
 

LexxWork

Client
Регистрация
31.10.2013
Сообщения
1 190
Благодарностей
792
Баллы
113
на 5753 все норм, похоже это баг, стоит попробовать самую последнюю версию либо откатиться назад.
 

endru.mail

Client
Регистрация
22.02.2011
Сообщения
175
Благодарностей
39
Баллы
28
на 5753 все норм, похоже это баг, стоит попробовать самую последнюю версию либо откатиться назад.
на самой последней версии это выглядит вот так:
Код:
http://zennolab.com/get?param=&text=РєР%B0РєР%B0СЏ%20С%82Рѕ%20непоняС%82РЅР%B0СЏ%20РєРѕРґРёСЂРѕРІРєР%B0
и, как заметил GrandT, при запросе через сторонний браузер (или через встроенный в зенно) сниффер ловит правильный запрос
 

rostonix

Известная личность
Регистрация
23.12.2011
Сообщения
29 067
Благодарностей
5 715
Баллы
113
на 5.8.7.0 нет проблем с urlencode
вчера тестил
прикладывайте пример
 

shell

Client
Регистрация
16.05.2016
Сообщения
114
Благодарностей
4
Баллы
18
А как решить с перекодировкой вопрос?
Вот есть например сайт: сайт.рф
get запрос на кирилицу не работает, (ну или что-то делаю не так) а в таком виде работает http://xn--80aswg.xn--p1ai/ (копирую из строки браузера)
Как перевести название сайта в такой вид? Чтобы делать get
 

Mikhail B.

Client
Регистрация
23.12.2014
Сообщения
14 443
Благодарностей
5 459
Баллы
113
А как решить с перекодировкой вопрос?
Вот есть например сайт: сайт.рф
get запрос на кирилицу не работает, (ну или что-то делаю не так) а в таком виде работает http://xn--80aswg.xn--p1ai/ (копирую из строки браузера)
Как перевести название сайта в такой вид? Чтобы делать get
urlencode пробовали?
 

shell

Client
Регистрация
16.05.2016
Сообщения
114
Благодарностей
4
Баллы
18

inotoxic

Client
Регистрация
20.04.2015
Сообщения
354
Благодарностей
164
Баллы
43
  • Спасибо
Реакции: shell

shell

Client
Регистрация
16.05.2016
Сообщения
114
Благодарностей
4
Баллы
18

anton663

Client
Регистрация
06.06.2011
Сообщения
34
Благодарностей
0
Баллы
6
Дабы не плодить тему хочу задать вопрос здесь. Есть несколько сайтов в различной кодировке, часть в utf, часть в вин-1251. Get запросом с установленной кодировкой utf выдираю из хедера прописанную кодировку. Если utf - обрабатываю дальше, если win-1251 - делаю новый get запрос к странице с параметром кодировке уже win-1251. Дальше вопрос. Полученные данные в какой кодировке? Думал в win1251, но при кjнвертации из win1251 в utf получаются вопросительные знаки.
 

Sergodjan

Administrator
Команда форума
Регистрация
05.09.2012
Сообщения
20 576
Благодарностей
9 189
Баллы
113
Дабы не плодить тему хочу задать вопрос здесь. Есть несколько сайтов в различной кодировке, часть в utf, часть в вин-1251. Get запросом с установленной кодировкой utf выдираю из хедера прописанную кодировку. Если utf - обрабатываю дальше, если win-1251 - делаю новый get запрос к странице с параметром кодировке уже win-1251. Дальше вопрос. Полученные данные в какой кодировке? Думал в win1251, но при кjнвертации из win1251 в utf получаются вопросительные знаки.
Не припомню вроде бы, чтобы при работе с сайтом с windows-1251 кодировкой после запроса результат нужно было конвертировать в UTF. А если не делать конвертирование каков результат?
 

anton663

Client
Регистрация
06.06.2011
Сообщения
34
Благодарностей
0
Баллы
6
Не припомню вроде бы, чтобы при работе с сайтом с windows-1251 кодировкой после запроса результат нужно было конвертировать в UTF. А если не делать конвертирование каков результат?
В том то вопрос, все данные с разных сайтов(различные кодировки) надо сохранить в один файл, соответственно привести их к одной кодировки. Похоже что все полученные данные уже в utf, главное правильно прописать кодировку в get запросе, но точно не знаю.
 

Sergodjan

Administrator
Команда форума
Регистрация
05.09.2012
Сообщения
20 576
Благодарностей
9 189
Баллы
113
В том то вопрос, все данные с разных сайтов(различные кодировки) надо сохранить в один файл, соответственно привести их к одной кодировки. Похоже что все полученные данные уже в utf, главное правильно прописать кодировку в get запросе, но точно не знаю.
Зеннопостер внутри себя работает в UTF независимо от того в какой кодировке происходит запрос.
Пробуйте сохранять данные без конвертирования.
 

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