0

Wynik dekodowania

Punycode IDN

Wynik kodowania

Punycode IDN

Punycode IDN

Punycode to metoda kodowania, która pozwala zapisać ciągi Unicode wyłącznie za pomocą znaków ASCII. Najczęściej służy do konwersji umiędzynarodowionych nazw domen (IDN), na przykład zawierających znaki japońskie, chińskie, koreańskie lub litery łacińskie ze znakami diakrytycznymi, do postaci ASCII obsługiwanej przez DNS.

W umiędzynarodowionej nazwie domeny każda etykieta domeny jest konwertowana za pomocą Punycode, a do przekonwertowanej etykiety dodawany jest prefiks xn--. Taka postać ASCII nazywa się A-label, a pierwotna postać Unicode — U-label.

Na przykład konwersja „ドメイン.com” do Punycode IDN daje następujący wynik.

xn--eckwd4c7c.com

W tym przykładzie domena najwyższego poziomu com zawiera tylko znaki ASCII i pozostaje bez zmian. Konwertowana jest tylko etykieta „ドメイン”, do postaci xn--eckwd4c7c.

Postać UnicodePostać Punycode IDNOpis
ドメイン.comxn--eckwd4c7c.comNazwa domeny zawierająca znaki japońskie.
例え.テストxn--r8jz45g.xn--zckzahKażda etykieta jest konwertowana osobno.
bücher.examplexn--bcher-kva.examplePrzykład z łacińską literą ze znakiem diakrytycznym.

Punycode IDN to inny mechanizm niż kodowanie URL. Kodowanie URL zapisuje znaki w adresie URL jako sekwencje bajtów, na przykład %E3%81%82. Punycode IDN konwertuje natomiast etykiety nazwy domeny na etykiety ASCII zaczynające się od xn--.

Konwersja etykiet domeny

Nazwa domeny składa się z etykiet oddzielonych kropkami (.). Punycode IDN nie konwertuje całej nazwy domeny jako jednego ciągu; każda etykieta jest przetwarzana osobno.

EtykietaWynik konwersji
例えxn--r8jz45g
テストxn--zckzah

Dlatego 例え.テスト jest konwertowane do xn--r8jz45g.xn--zckzah.