Процент кодирования не расширенного символа 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), да.

Другие вопросы по тегам