Punycode
Dan Tobias (Talk | contribs) (Add infobox) |
Dan Tobias (Talk | contribs) |
||
(3 intermediate revisions by one user not shown) | |||
Line 1: | Line 1: | ||
{{FormatInfo | {{FormatInfo | ||
|formattype=electronic | |formattype=electronic | ||
− | |subcat=Character | + | |subcat=Character encoding |
+ | |subcat2=Unicode | ||
}} | }} | ||
− | |||
'''Punycode''' is a special purpose [[Unicode]] [[Character Encodings|character encoding]]. It encodes a string of Unicode text as a string of [[ASCII]] characters suitable for use in a [[domain name]]. | '''Punycode''' is a special purpose [[Unicode]] [[Character Encodings|character encoding]]. It encodes a string of Unicode text as a string of [[ASCII]] characters suitable for use in a [[domain name]]. | ||
The encoding algorithm is rather complex. Because the length of a domain name is strictly limited, one of its goals is to make the encoded string as small as possible. Another goal is to encode all languages with roughly the same efficiency, and not punish a language merely because its characters are mapped to high Unicode code points. To that end, it is most efficient when encoding a string whose characters lie close together in the Unicode character set. The absolute values of the code points have little effect. | The encoding algorithm is rather complex. Because the length of a domain name is strictly limited, one of its goals is to make the encoded string as small as possible. Another goal is to encode all languages with roughly the same efficiency, and not punish a language merely because its characters are mapped to high Unicode code points. To that end, it is most efficient when encoding a string whose characters lie close together in the Unicode character set. The absolute values of the code points have little effect. | ||
+ | |||
+ | When used in a domain name, the Unicode name is encoded in Punycode, and then appended to the ASCII string "<code>xn--</code>". | ||
== Specifications == | == Specifications == | ||
Line 12: | Line 14: | ||
== External links == | == External links == | ||
− | * [[Wikipedia:Punycode | + | * [[Wikipedia: Punycode]] |
+ | * [[Wikipedia: Internationalized domain name]] | ||
+ | |||
+ | [[Category:Transfer Encodings]] |
Latest revision as of 02:35, 21 May 2019
Punycode is a special purpose Unicode character encoding. It encodes a string of Unicode text as a string of ASCII characters suitable for use in a domain name.
The encoding algorithm is rather complex. Because the length of a domain name is strictly limited, one of its goals is to make the encoded string as small as possible. Another goal is to encode all languages with roughly the same efficiency, and not punish a language merely because its characters are mapped to high Unicode code points. To that end, it is most efficient when encoding a string whose characters lie close together in the Unicode character set. The absolute values of the code points have little effect.
When used in a domain name, the Unicode name is encoded in Punycode, and then appended to the ASCII string "xn--
".
[edit] Specifications
- RFC 3492: Punycode