Інструменти розробника · URL енкодер & декодер
Як працює відсоткова обробка: від символів до UTF-8 байти до %XПослідовності X
· Як працює
Опубліковано ToolAcre · Редакція журналу
виворітна обробка уф-8 відсотків-пригоди Про компанію

Процент-кодування не кодує символи; кодує байти. Цей пост показує, як стає символ UTF-8 байтів і потім шестигранних пар, і чому акцентований лист займає два %XX груп, в той час як смайл займає чотири.
Чому «е» перетворюється на %C3%A9 замість %E9 — спостереження, що розкриває шар байту під
Коли молодший розробник бачить %C3%A9 у URL, %-encoding працює на байтах, не символів. Характер é не один байт; UTF-8 кодує його як два: C3 A9. Нормативно-орієнтоване правило від RFC 3986 простий: закодувати кожен байт як процент, який слідувати двома цифрами. Що відрізняє пояснення від таємничого до логіки.
Розуміння відсотків-пригоди вимагає розуміння UTF-8. Текст повинен бути перетворений в байти за допомогою кодування символів. UTF-8 є стандартом для URL-адрес та веб. Висловлює символи, як змінні довжини, байтові послідовності: ASCII Використовуйте один байт, підкреслені листи використовують два, смайлики використовують чотири. Кожен етап відрізняється: характер, точка коду Unicode, UTF-8 байти, потім %XX пар. Скопіювати шістки без розуміння байтів пропускає точку.
Нормативно-орієнтоване правило від RFC 3986 — 1 % за допомогою двох шестигранних цифр за байтом, віднайшвидше
RFC 3986 визначає одне правило: закодувати кожну байт, як відсоток, а потім двома верхніми цифрами. Незбережені символи, які потребують кодування, є літерами, цифрами, феном, андерсоном, періодом та нахилом. Все інше необхідно закодувати. Простір стає %20, вії стають %2F, і процентний знак стає %25. Це запобігає особливостям запиту від розбиття URL структура.
Простір шифрує як байт 0x20, ставши %20. Попереднє зіткнення 0x2F, стає %2F. Ці ASCII символи, які потребують одного байту. Настрочені листи та смайлики відрізняються. Відсотковий знак стає %25. Зашифровані глухіри, як колони закодовані для збереження структури. Це запобігає вбудованому амперанду або дорівнює параметру запиту від розбиття парсингу. Кожен байт стає %HH.
UTF-8 як передбачається charset — чому сучасні URL-адреси UTF-8 і де винятки спадності
UTF-8 використовує кодування змінної довжини. ASCII з точок коду 0 до 127 є одним. Символи від 128 до 2047, включаючи акцентовані латинські букви, є двома байтами. Символи від 2048 до 65535, поширені на східних азіатських сценаріях, є три байти. Символи вище 65535, включаючи більшість смайлів, є чотирибайти. Кожен байт зафіксований бітами сигналізацією скільки байтів слідувати.
Підкреслений лист é - точка U+00E9. UTF-8 кодує його як два байти: 0xC3 і 0xA9. Процентна обробка виробляє %C3%A9. Німецька ю (U+00FC) кодує як 0xC3 0xBC, стає %C3%BC. Іспанська ñ (U+00F1) кодує як 0xC3 0xB1, ставши %C3%B1. Патерн послідовний: перший байт сигналів двобайтної послідовності. Один акцентований лист розширюється шести символів у кодуванні.
Приклад: кодування 'café 😀' byte пункти коду, точки коду UTF-8 байти і отриманий рядок
Emoji робить шар байтів очевидним. Про нас ескізи смайлики 👍 код точки U+1F44D. UTF-8 кодує його як чотири байти: F0 9F 91 8Д. Персентно-екологічна продукція %F0 р%9F%918D: 12 символів для одного символу. Смішні 😀 (У+1Ф600) коди як F0 9F 98 80, стати %F0 р%9F%9880. Чотиримісні послідовності стають дванадцяти відсотків зашифрованими символами.
Змішаний текст показує, чому розуміння байтів. Фраза "кафе" містить звичайний ASCII, акцент і смайлики. Листи c, a, f код як 63, 61, 66. É коди як C3 A9. Космічні коди як 20. Коди смайликів як F0 9F 98 80. В результаті «caf%C3%A9%20%Ф0%9F%9880". Розуміння яких байтів потрібно кодування робить вихід передбачуваним.
Декодування в зворотному режимі — збір %XX групи в байти і тільки потім інтерпретують їх як UTF-8
Визначає процес. Декодер сканування %XX пар і збирає їх в байтові значення. Перегляд %C3%A9, екстракти байтів C3 і A9. UTF-8 декодування інтерпретує ті, як символ е. Якщо послідовність неповна, як %C3 самостійно, результат є помилкою. Декодер знає з UTF-8 префіксувати біти, які C3 вимагає другого байту.
Справа не має значення в цифрах шестигранних речовин; %C3%A9 і %c3%a9 декодування ідентично. RFC дозволяє верхній або нижній регістр, хоча верхній край краще. Але справа стосується символів: é (як %C3%A9) не так само, як É (як %C3%89). URL Порівняти повинні нормалізувати відсоткову обробку або ризик, що лікує ідентичні ресурси. Рамки нормалізують до кешування.
Чому справа не має значення в цифрах шестигранних, але в іншому місці — правила нормалізації і URL Порівняти
RFC 3986 вказує punycode для доменних імен і форму кодування для подання окремими правилами. Коди не-ASCII доменні імена без процентних знаків DNS сумісність. домен 😀.example стає "xn--js8h.example". Форма кодування модіфікує проценти за винятком: пробіли стають плюс ознаки замість %20. Надіслані форми як додаток/x-www-form-urlencoded використовувати плюс для пробілів.
Про нас URL encoder інструмент показує всі три режими: кодування компонентів, весь-URL кодування і форма кодування. Кодування компонента за допомогою кодуванняURIComponent кодує кожен особливий характер, в тому числі дельімітатори, придатний для значень запиту. ХтоURL кодування з кодурою зберігає структурні символи для повного URL. Кодування форм для POST органи. Кожне використання UTF-8; вони розрізняються тільки в яких байтах залишають некодовані.
Кодування та кодування форми: стандарти зв'язку, непроцентні розширення
Мета URL Таємниці. Чому потрібно один смайл дванадцять символів? Бо UTF-8 використовує чотири байти, кожен став %H. Чому деякі URL-адреси %2F для slashes, коли інші мають звичайні slashes? Оскільки режим кодування вирішить: slash в сегменті шляху залишається некодованою, але всередині значення запиту він повинен бути %2F уникати прочитання.
Подумайте в байтах для прогнозування відсотків-пригоди. Символ - точка коду Unicode. UTF-8 є його байтовим поданням. Персент-encoding - формат передачі. Розширення символів відбувається на UTF-8 шар. Корпус шестигранний не впливає на декодування, але справи характеру. Послідовності неможливі при UTF-8 через суворі правила префікса. Про нас URL Інструмент енкодер показує цей прогрес.
Погляд: думка в байтах — як виглядає URL encoder & decoder показує точний %XX вихід для будь-якого тексту, який ви вставляєте, в браузері
Призначений для користувача приклад: кодування "café 😀". Слово кафе має літери c, a, f як ASCII одномісні байти: 63, 61, 66. Э UTF-8 2 байти: C3 A9. Простір 20. Emoji 😀 є чотирибайти: Ф0 9Ф 98 80. Зареєструватися ASCII листи залишаються видимими. Результат: "caf%C3%A9%20%Ф0%9F%9880". Це показує, чому один смайл розширюється до дванадцять символів.
Погляд: думка в байтах, не символи. Відсоткова обробка наноситься після UTF-8 кодування. Кожен байт стає %HH. Змінна довжина UTF-8 означає символи розширюються по-різному: ASCII стає %XX (два chars), два-байтні акценти стають %XР%XX (six chars), чотирибайтні смайлики стають %XР%XР%XР%XX (зварені chars). Вставити текст в текст URL інструмент і спостереження за прогресуванням.