Export (0) Print
Expand All

IdnMapping Class

Supports the use of non-ASCII characters for Internet domain names. This class cannot be inherited.

System.Object
  System.Globalization.IdnMapping

Namespace:  System.Globalization
Assembly:  mscorlib (in mscorlib.dll)

[<Sealed>]
type IdnMapping =  class end

The IdnMapping type exposes the following members.

  NameDescription
Public methodIdnMappingInitializes a new instance of the IdnMapping class.
Top

  NameDescription
Public propertyAllowUnassignedGets or sets a value that indicates whether unassigned Unicode code points are used in operations performed by members of the current IdnMapping object.
Public propertyUseStd3AsciiRulesGets or sets a value that indicates whether standard or relaxed naming conventions are used in operations performed by members of the current IdnMapping object.
Top

  NameDescription
Public methodEqualsIndicates whether a specified object and the current IdnMapping object are equal. (Overrides Object.Equals(Object).)
Public methodGetAscii(String)Encodes a string of domain name labels that consist of Unicode characters to a string of displayable Unicode characters in the US-ASCII character range. The string is formatted according to the IDNA standard.
Public methodGetAscii(String, Int32)Encodes a substring of domain name labels that include Unicode characters outside the US-ASCII character range. The substring is converted to a string of displayable Unicode characters in the US-ASCII character range and is formatted according to the IDNA standard.
Public methodGetAscii(String, Int32, Int32)Encodes the specified number of characters in a substring of domain name labels that include Unicode characters outside the US-ASCII character range. The substring is converted to a string of displayable Unicode characters in the US-ASCII character range and is formatted according to the IDNA standard.
Public methodGetHashCodeReturns a hash code for this IdnMapping object. (Overrides Object.GetHashCode().)
Public methodGetTypeGets the Type of the current instance. (Inherited from Object.)
Public methodGetUnicode(String)Decodes a string of one or more domain name labels, encoded according to the IDNA standard, to a string of Unicode characters.
Public methodGetUnicode(String, Int32)Decodes a substring of one or more domain name labels, encoded according to the IDNA standard, to a string of Unicode characters.
Public methodGetUnicode(String, Int32, Int32)Decodes a substring of a specified length that contains one or more domain name labels, encoded according to the IDNA standard, to a string of Unicode characters.
Public methodToStringReturns a string that represents the current object. (Inherited from Object.)
Top

An Internet domain name consists of one or more parts, called domain name labels, separated by label separators. For example, the domain name "www.proseware.com" consists of the labels, "www", "proseware", and "com", separated by periods. Standard domain names consist of designated characters in the US-ASCII (or Basic Latin) character range, from U+0021 to U+007E. To facilitate Internet usage in cultures that do not use the US-ASCII character set, the Internationalizing Domain Names in Applications (IDNA) standard was adopted in 2003 to support the inclusion of Unicode characters outside the US-ASCII character range. However, name servers and domain name resolution continue to rely on characters within the US-ASCII character range.

The IDNA mechanism uses Punycode to map an internationalized domain name that contains Unicode characters outside the US-ASCII character range to the US-ASCII character range supported by the domain name system. The IDNA mechanism is used to convert only domain names, not data transmitted over the Internet.

Important noteImportant

In the .NET Framework 4.5, the IdnMapping class supports different versions of the IDNA standard, depending on the operating system in use:

See Unicode Technical Standard #46: IDNA Compatibility Processing for the differences in the way these standards handle particular sets of characters.

The IdnMapping.GetAscii method normalizes a domain name, converts the normalized name to a representation that consists of displayable Unicode characters in the US-ASCII code point range (U+0020 to U+007E), and prepends an ASCII-compatible encoding (ACE) prefix ("xn--") to each label. The IdnMapping.GetUnicode method restores the domain name labels converted by the GetAscii method.

If the string to be converted includes the label separator characters IDEOGRAPHIC FULL STOP (U+3002), FULLWIDTH FULL STOP (U+FF0E), and HALFWIDTH IDEOGRAPHIC FULL STOP (U+FF61), the GetAscii method converts them to the label separator FULL STOP (period, U+002E). The GetUnicode method, however, does not restore the original label separator character.

The following example uses the GetAscii(String, Int32, Int32) method to convert an array of internationalized domain names to Punycode. The GetUnicode method then converts the Punycode domain name back to the original domain name, but replaces the original label separators with the standard label separator.

No code example is currently available or this language may not be supported.

.NET Framework

Supported in: 4.5, 4, 3.5, 3.0, 2.0

.NET Framework Client Profile

Supported in: 4, 3.5 SP1

Windows 8.1, Windows Server 2012 R2, Windows 8, Windows Server 2012, Windows 7, Windows Vista SP2, Windows Server 2008 (Server Core Role not supported), Windows Server 2008 R2 (Server Core Role supported with SP1 or later; Itanium not supported)

The .NET Framework does not support all versions of every platform. For a list of the supported versions, see .NET Framework System Requirements.

Any public static (Shared in Visual Basic) members of this type are thread safe. Any instance members are not guaranteed to be thread safe.
Show:
© 2014 Microsoft