2014-06-04 2 views
1

Я знаю, что для символов ASCII кодировка URL - это просто знак процента и шестнадцатеричное число, соответствующее символу. Но для символов вне этого диапазона шестнадцатеричное кодирование состоит из двух или более последовательностей с шестнадцатеричным числом.как вычислить кодировку URL для символов вне набора символов ASCII?

Например, для символа, который соответствует значению шестигранной 56CE, кодирование URL, в соответствии со стандартным API, .net/Java не% 56CE но "% e5% 9b% 8e"

Так что, если мы знаем, шестнадцатеричное значение для символа вне диапазона символов ASCII, как вычисляется кодировка URL-адреса? Другими словами, как e5, 9b, 8e выходят из 56CE? Я попытался преобразовать в двоичный файл и увидел шаблон для последних двух чисел (% 9b,% 8e), но понятия не имею, откуда приходит% e5.

ответ

2

Сначала необходимо кодировать коды кодировки Unicode в байты кодировки, а затем вы можете кодировать эти байты по URL-адресу. В вашем примере E5 9B 8E являются закодированными байтами UTF-8 кодировки Unicode U+56CE, а затем %E5%9B%8E - это кодированная по URL форма байтов UTF-8.

Смежные вопросы