Punycode (udtales [ˈpjuːniˌkəʊd] ) er en standardiseret metode til at konvertere sekvenser af Unicode -tegn til såkaldte ACE-sekvenser ( eng. ASCII Compatible Encoding - ASCII compatible encoding [1] ), som kun består af alfanumeriske tegn, som dette er tilladt i domæne navne.
Punycode blev designet til utvetydigt at konvertere domænenavne til en sekvens af ASCII - tegn. Bruges af de fleste browsere [2] . Der er også specielle programmer eller tjenester kaldet Punycode-konvertere , som giver dig mulighed for at indkode/afkode en sekvens af Unicode-tegn i ACE og omvendt.
Den vigtigste årsag til introduktionen af Punycode var det faktum, at kun 26 tegn i det latinske alfabet, tal fra 0 til 9 og en bindestreg er tilladt i domænenavnesystemet godkendt af standarden. For engelsk og nogle andre sprog baseret på det latinske alfabet er dette tilstrækkeligt, men andre sprog kan indeholde yderligere tegn, såsom , eller . äöü
De grundlæggende tegn er tegnene i det latinske alfabet a - z (uden skelnen mellem store og små bogstaver), tal fra 0 til 9 og en bindestreg "-"; kun 37 tegn. Transformationsalgoritmen består af to trin. På det første trin vælges alle tegn, der indgår i hoved- ASCII -kodningen (koder 0-127), fra kildeteksten og overføres i en række til det kodede ord. Hvis der derefter stødes på ikke-ASCII-tegn i teksten, tilføjes en bindestreg til det kodede ord, og derefter følger konverteringen proceduren beskrevet i RFC 3492 [3] .
EksemplerKaraktersekvens | Indkodning |
---|---|
abcdef | abcdef |
abecdöef | abcdef-qua4k |
schon | schn-7qa |
ยจฆฟคฏข | 22cdfh1b8fsa |
☺ | 74 timer |
sandhed | 80aafi6cg |