Punycode (uttalas [ˈpjuːniˌkəʊd] ) är en standardiserad metod för att omvandla sekvenser av Unicode -tecken till så kallade ACE-sekvenser ( eng. ASCII Compatible Encoding - ASCII compatible encoding [1] ), som endast består av alfanumeriska tecken, som detta tillåts i domänen namn.
Punycode designades för att entydigt konvertera domännamn till en sekvens av ASCII - tecken. Används av de flesta webbläsare [2] . Det finns även speciella program eller tjänster som kallas Punycode-omvandlare som låter dig koda/avkoda en sekvens av Unicode-tecken i ACE och vice versa.
Det viktigaste skälet till införandet av Punycode var det faktum att endast 26 tecken i det latinska alfabetet, siffror från 0 till 9 och ett bindestreck är tillåtna i domännamnssystemet som godkänts av standarden. För engelska och vissa andra språk baserade på det latinska alfabetet räcker detta, men andra språk kan innehålla ytterligare tecken, som , eller . äöü
Grundtecknen är tecknen i det latinska alfabetet a - z (utan skillnad mellan stora och små bokstäver), siffror från 0 till 9 och ett bindestreck "-"; endast 37 tecken. Transformationsalgoritmen består av två steg. I det första steget väljs alla tecken som ingår i ASCII -huvudkodningen (koderna 0-127) från källtexten och överförs i rad till det kodade ordet. Efter det, om icke-ASCII-tecken påträffas i texten, läggs ett bindestreck till det kodade ordet, och sedan följer konverteringen proceduren som beskrivs i RFC 3492 [3] .
ExempelKaraktärssekvens | Kodning |
---|---|
abcdef | abcdef |
abecdöef | abcdef-qua4k |
schon | schn-7qa |
ยจฆฟคฏข | 22cdfh1b8fsa |
☺ | 74h |
sanning | 80aafi6cg |