IdnMapping::GetAscii Method (String^, Int32, Int32)


The .NET API Reference documentation has a new home. Visit the .NET API Browser on to see the new experience.

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.

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

String^ GetAscii(
	String^ unicode,
	int index,
	int count


Type: System::String^

The string to convert, which consists of one or more domain name labels delimited with label separators.

Type: System::Int32

A zero-based offset into unicode that specifies the start of the substring.

Type: System::Int32

The number of characters to convert in the substring that starts at the position specified by index in the unicode string.

Return Value

Type: System::String^

The equivalent of the substring specified by the unicode, index, and count parameters, 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

unicode is null.


index or count is less than zero.


index is greater than the length of unicode.


index is greater than the length of unicode minus count.


unicode is invalid based on the AllowUnassigned and UseStd3AsciiRules properties, and the IDNA standard.

The Unicode, index, and count parameters define a substring with one or more labels that consist of valid Unicode characters. The labels are separated by label separators. The first character of the substring 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 "" consists of the labels, "www", "adatum", and "com", separated by periods.

A label cannot contain any of the following characters:

The GetAscii method converts all label separators to FULL STOP (period, U+002E). If the substring contains no characters outside the US-ASCII character range, and no characters within the US-ASCII character range are prohibited, the method returns the substring 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:

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^, Int32, Int32) method to convert an internationalized domain name to a domain name that complies with the IDNA standard. The GetUnicode(String^, Int32, Int32) method then converts the standardized domain name back into 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.

Universal Windows Platform
Available since 10
.NET Framework
Available since 2.0
Return to top