Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Save ezhov-da/3a3ff63aa7dc73774b0d463a2862b5a4 to your computer and use it in GitHub Desktop.
Save ezhov-da/3a3ff63aa7dc73774b0d463a2862b5a4 to your computer and use it in GitHub Desktop.
js кодировка русских букв в get запросах ajax
https://habrahabr.ru/post/17640/
<pre>- encodeURIComponent():
Латинские буквы, цифры, символы !*()'. оставляет как есть, всё остальное кодирует
escape-последовательностями в кодировке UTF-8.
Одобрено W3C.
Используется jQuery, prototype.js при запросе методом GET.
Возможно вы слышали от кого-то: «XMLHttpRequest работает только с UTF-8».
Теперь знаете, что это не совсем правда.
Когда используется GET-запрос, то кодировка переданных данных вообще нигде не прописывается(!).
Ещё раз повторю, 'Content-type', в котором мы можем указать charset
не используется в GET запросах.
Но, т.к. в JavaScript есть 2 удобные функции для перевода любой строки в строку с escape-последовательностями в UTF-8, то все их используют, и работают с UTF-8.
Именно поэтому в jQuery даже нельзя никак указать charset при отправке запроса.
Именно поэтому в Prototype.js, даже когда указываешь encoding='windows-1251', и используешь GET запрос, то передается всё равно UTF-8.
</pre>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment