(параметр "srh_txt =% u05E0% u05D9% u05D1" кодирует srh_txt = ניב в UNICODE)
Это не совсем так. Это не кодировка URL, и последовательность %u
является недействительной в URL.
%u05E0%u05D9%u05D1"
кодирует ניב
только в странном синтаксисе JavaScript escape
. escape
аналогично URL-кодированию для всех символов ASCII, за исключением +
, но экранирование %u####
, которое он производит для символов Юникода, полностью является его собственным изобретением.
(В общем, никогда не следует использовать escape
. Использование encodeURIComponent
вместо этого приводит к правильному URL-кодированию UTF-8, ניב
= %D7%A0%D7%99%D7%91
.)
Если сайт требует %u####
последовательностей в строке запроса, он очень сильно поврежден.
Есть ли способ создания URI в кодировке, отличной от UTF-8?
Да, URI могут использовать любую понравившуюся вам кодировку. Это условно UTF-8; это то, что требуется IRI и что браузеры обычно отправляют, если пользователь вводит символы не-ASCII в адресную строку, но сам URI касается только байтов.
Так что вы можете конвертировать ניב
в %F0%E9%E1
. Веб-приложение не сможет сказать, что эти байты представляют собой символы, закодированные в кодовой странице 1255 (иврит, аналогично ISO-8859-8). Но, похоже, это работает по ссылке выше, чего нет в версии UTF-8. О дорогой!