Процент кодирования не расширенного символа ascii, например расширенного символа
Если мы в процентах закодируем символ "€", в результате мы получим%E2%82%AC. Хорошо!
Моя проблема:
а = %61
Я это уже знаю.
Можно ли закодировать "а" во что-то вроде% XX% XX или%XX%XX%XX?
Если да, будут ли браузеры и серверы воспринимать результат как символ "а"?
1 ответ
Если мы в процентах закодируем символ "€", в результате мы получим%E2%82%AC.
€
такое кодировка Unicode U+20AC EURO SIGN
, Последовательность байтов 0xE2 0x82 0xAC
как U+20AC кодируется в UTF-8. %E2%82%AC
это кодировка URL этих байтов.
а = %61
Я это уже знаю.
Для символа ASCII a
, также известный как код Unicode U+0061 LATIN SMALL LETTER A
, это правильно. Кодируется как байт 0x61
в UTF-8 (и большинстве других кодировок) и, следовательно, может быть закодирован как %61
в URL.
Можно ли закодировать "а" во что-то вроде% XX% XX или%XX%XX%XX?
Да. Любой символ может быть закодирован с использованием процентного кодирования в URL. Просто закодируйте символ в соответствующей кодировке, а затем закодируйте полученные байты в процентах. Однако большинство незарезервированных символов ASCII не требуют такой кодировки, просто используйте их как есть.
Если да, будут ли браузеры и серверы воспринимать результат как символ "а"?
В URL-адресах и URL-подобных контентных кодировках (например, application/x-www-webform-urlencoded
), да.