IdnMapping::GetAscii Method (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.
Assembly: mscorlib (in mscorlib.dll)
Parameters
- unicode
-
Type:
System::String^
The string to convert, which consists of one or more domain name labels delimited with label separators.
Return Value
Type: System::String^The equivalent of the string specified by the unicode parameter, consisting of displayable Unicode characters in the US-ASCII character range (U+0020 to U+007E) and formatted according to the IDNA standard.
| Exception | Condition |
|---|---|
| ArgumentNullException | unicode is null. |
| ArgumentException | unicode is invalid based on the AllowUnassigned and UseStd3AsciiRules properties, and the IDNA standard. |
The unicode parameter specifies a string of one or more labels that consist of valid Unicode characters. The labels are separated by label separators. The unicode parameter cannot begin with a label separator, but it can include and optionally end with a separator. The label separators are FULL STOP (period, U+002E), IDEOGRAPHIC FULL STOP (U+3002), FULLWIDTH FULL STOP (U+FF0E), and HALFWIDTH IDEOGRAPHIC FULL STOP (U+FF61). For example, the domain name "www.adatum.com" consists of the labels, "www", "adatum", and "com", separated by periods.
A label cannot contain any of the following characters:
Unicode control characters from U+0001 through U+001F, and U+007F.
Unassigned Unicode characters, if the value of the AllowUnassigned property is false.
Non-standard characters in the US-ASCII character range, such as the SPACE (U+0020), EXCLAMATION MARK (U+0021), and LOW LINE (U+005F) characters, if the value of the UseStd3AsciiRules property is true.
Characters that are prohibited by a specific version of the IDNA standard. For more information about prohibited characters, see RFC 3454: Preparation of Internationalized Strings ("stringprep") for IDNA 2003, and RFC 5982: The Unicode Code Points and Internationalized Domain Names for Applications for IDNA 2008.
The GetAscii method converts all label separators to FULL STOP (period, U+002E).
If unicode contains no characters outside the US-ASCII character range and no characters within the US-ASCII character range are prohibited, the method returns unicode unchanged.
Notes to Callers:
In the .NET Framework 4.5, the IdnMapping class supports different versions of the IDNA standard, depending on the operating system in use:
When run on Windows 8, it supports the 2008 version of the IDNA standard outlined by RFC 5891: Internationalized Domain Names in Applications (IDNA): Protocol.
When run on earlier versions of the Windows operating system, it supports the 2003 version of the standard outlined by RFC 3490: Internationalizing Domain Names in Applications (IDNA).
See Unicode Technical Standard #46: IDNA Compatibility Processing for the differences in the way these standards handle particular sets of characters.
The following example uses the GetAscii(String^) method to convert an array of internationalized domain names to Punycode, which is an encoded equivalent that consists of characters in the US-ASCII character range. The GetUnicode(String^) method then converts the Punycode domain name back into the original domain name, but replaces the original label separators with the standard label separator.
Available since 10
.NET Framework
Available since 2.0