Browse Prior Art Database

Punycode: A Bootstring encoding of Unicode for Internationalized Domain Names in Applications (IDNA) (RFC3492)

IP.com Disclosure Number: IPCOM000011595D
Original Publication Date: 2003-Mar-01
Included in the Prior Art Database: 2003-Mar-07
Document File: 36 page(s) / 68K

Publishing Venue

Internet Society Requests For Comment (RFCs)

Related People

A. Costello: AUTHOR

Abstract

Punycode is a simple and efficient transfer encoding syntax designed for use with Internationalized Domain Names in Applications (IDNA). It uniquely and reversibly transforms a Unicode string into an ASCII string. ASCII characters in the Unicode string are represented literally, and non-ASCII characters are represented by ASCII characters that are allowed in host name labels (letters, digits, and hyphens). This document defines a general algorithm called Bootstring that allows a string of basic code points to uniquely represent any string of code points drawn from a larger set. Punycode is an instance of Bootstring that uses particular parameter values specified by this document, appropriate for IDNA.

This text was extracted from an ASCII text file.
This is the abbreviated version, containing approximately 5% of the total text.

Network Working Group                                        A. Costello

Request for Comments: 3492                 Univ. of California, Berkeley

Category: Standards Track                                     March 2003

              Punycode: A Bootstring encoding of Unicode

       for Internationalized Domain Names in Applications (IDNA)

Status of this Memo

   This document specifies an Internet standards track protocol for the

   Internet community, and requests discussion and suggestions for

   improvements.  Please refer to the current edition of the "Internet

   Official Protocol Standards" (STD 1) for the standardization state

   and status of this protocol.  Distribution of this memo is unlimited.

Copyright Notice

   Copyright (C) The Internet Society (2003).  All Rights Reserved.

Abstract

   Punycode is a simple and efficient transfer encoding syntax designed

   for use with Internationalized Domain Names in Applications (IDNA).

   It uniquely and reversibly transforms a Unicode string into an ASCII

   string.  ASCII characters in the Unicode string are represented

   literally, and non-ASCII characters are represented by ASCII

   characters that are allowed in host name labels (letters, digits, and

   hyphens).  This document defines a general algorithm called

   Bootstring that allows a string of basic code points to uniquely

   represent any string of code points drawn from a larger set.

   Punycode is an instance of Bootstring that uses particular parameter

   values specified by this document, appropriate for IDNA.

Table of Contents

   1. Introduction...............................................2

       1.1 Features..............................................2

       1.2 Interaction of protocol parts.........................3

   2. Terminology................................................3

   3. Bootstring description.....................................4

       3.1 Basic code point segregation..........................4

       3.2 Insertion unsort coding...............................4

       3.3 Generalized variable-length integers..................5

       3.4 Bias adaptation.......................................7

   4. Bootstring parameters......................................8

   5. Parameter values for Punycode..............................8

   6. Bootstring algorithms......................................9

Costello                    Standards Track                     [Page 1]

RFC 3492                     IDNA Punycode                    March 2003

       6.1 Bias adaptation function.............................10

       6.2 Decoding procedure...................................11

       6.3 Encoding procedure...................................12

       6.4 Overflow h...