IdnMapping.GetAscii Metoda
Definice
Důležité
Některé informace platí pro předběžně vydaný produkt, který se může zásadně změnit, než ho výrobce nebo autor vydá. Microsoft neposkytuje žádné záruky, výslovné ani předpokládané, týkající se zde uváděných informací.
Zakóduje řetězec popisků názvu domény, který obsahuje znaky Unicode mimo rozsah znaků US-ASCII, na řetězec zobrazovaných znaků Unicode v oblasti znaků US-ASCII (U+0020 až U+007E). Řetězec je naformátován podle standardu IDNA.
Přetížení
| Name | Description |
|---|---|
| GetAscii(String) |
Zakóduje řetězec popisků názvu domény, který se skládá ze znaků Unicode, na řetězec zobrazovaných znaků Unicode v oblasti znaků US-ASCII. Řetězec je naformátován podle standardu IDNA. |
| GetAscii(String, Int32) |
Zakóduje podřetězdí popisků názvu domény, které obsahují znaky Unicode mimo rozsah znaků US-ASCII. Podřetězc je převeden na řetězec zobrazovaných znaků Unicode v oblasti znaků US-ASCII a je formátován podle standardu IDNA. |
| GetAscii(String, Int32, Int32) |
Zakóduje zadaný počet znaků v podřetězdí popisků názvů domén, které obsahují znaky Unicode mimo rozsah znaků US-ASCII. Podřetězc je převeden na řetězec zobrazovaných znaků Unicode v oblasti znaků US-ASCII a je formátován podle standardu IDNA. |
GetAscii(String)
- Zdroj:
- IdnMapping.cs
- Zdroj:
- IdnMapping.cs
- Zdroj:
- IdnMapping.cs
- Zdroj:
- IdnMapping.cs
- Zdroj:
- IdnMapping.cs
Zakóduje řetězec popisků názvu domény, který se skládá ze znaků Unicode, na řetězec zobrazovaných znaků Unicode v oblasti znaků US-ASCII. Řetězec je naformátován podle standardu IDNA.
public:
System::String ^ GetAscii(System::String ^ unicode);
public string GetAscii(string unicode);
member this.GetAscii : string -> string
Public Function GetAscii (unicode As String) As String
Parametry
- unicode
- String
Řetězec, který se má převést, který se skládá z jednoho nebo více popisků názvu domény oddělených oddělovači popisků.
Návraty
Ekvivalent řetězce určeného unicode parametrem, který se skládá ze zobrazených znaků Unicode v oblasti znaků US-ASCII (U+0020 až U+007E) a formátovaný podle standardu IDNA.
Výjimky
unicode je null.
unicode je neplatná na AllowUnassigned základě vlastností a UseStd3AsciiRules standardu IDNA.
Příklady
Následující příklad používá metodu GetAscii(String) k převodu pole mezinárodních názvů domén na Punycode, což je kódovaný ekvivalent, který se skládá ze znaků v oblasti znaků US-ASCII. Metoda GetUnicode(String) pak převede název domény Punycode zpět na původní název domény, ale nahradí původní oddělovače popisků standardní oddělovač štítků.
using System;
using System.Globalization;
public class Example
{
public static void Main()
{
string[] names = { "bücher.com", "мойдомен.рф", "παράδειγμα.δοκιμή",
"mycharity\u3002org",
"prose\u0000ware.com", "proseware..com", "a.org",
"my_company.com" };
IdnMapping idn = new IdnMapping();
foreach (var name in names) {
try {
string punyCode = idn.GetAscii(name);
string name2 = idn.GetUnicode(punyCode);
Console.WriteLine("{0} --> {1} --> {2}", name, punyCode, name2);
Console.WriteLine("Original: {0}", ShowCodePoints(name));
Console.WriteLine("Restored: {0}", ShowCodePoints(name2));
}
catch (ArgumentException) {
Console.WriteLine("{0} is not a valid domain name.", name);
}
Console.WriteLine();
}
}
private static string ShowCodePoints(string str1)
{
string output = "";
foreach (var ch in str1)
output += $"U+{(ushort)ch:X4} ";
return output;
}
}
// The example displays the following output:
// bücher.com --> xn--bcher-kva.com --> bücher.com
// Original: U+0062 U+00FC U+0063 U+0068 U+0065 U+0072 U+002E U+0063 U+006F U+006D
// Restored: U+0062 U+00FC U+0063 U+0068 U+0065 U+0072 U+002E U+0063 U+006F U+006D
//
// мойдомен.рф --> xn--d1acklchcc.xn--p1ai --> мойдомен.рф
// Original: U+043C U+043E U+0439 U+0434 U+043E U+043C U+0435 U+043D U+002E U+0440 U+0444
// Restored: U+043C U+043E U+0439 U+0434 U+043E U+043C U+0435 U+043D U+002E U+0440 U+0444
//
// παράδειγμα.δοκιμή --> xn--hxajbheg2az3al.xn--jxalpdlp --> παράδειγμα.δοκιμή
// Original: U+03C0 U+03B1 U+03C1 U+03AC U+03B4 U+03B5 U+03B9 U+03B3 U+03BC U+03B1 U+002E U+03B4 U+03BF U+03BA U+03B9 U+03BC U+03AE
// Restored: U+03C0 U+03B1 U+03C1 U+03AC U+03B4 U+03B5 U+03B9 U+03B3 U+03BC U+03B1 U+002E U+03B4 U+03BF U+03BA U+03B9 U+03BC U+03AE
//
// mycharity。org --> mycharity.org --> mycharity.org
// Original: U+006D U+0079 U+0063 U+0068 U+0061 U+0072 U+0069 U+0074 U+0079 U+3002 U+006F U+0072 U+0067
// Restored: U+006D U+0079 U+0063 U+0068 U+0061 U+0072 U+0069 U+0074 U+0079 U+002E U+006F U+0072 U+0067
//
// prose ware.com is not a valid domain name.
//
// proseware..com is not a valid domain name.
//
// a.org --> a.org --> a.org
// Original: U+0061 U+002E U+006F U+0072 U+0067
// Restored: U+0061 U+002E U+006F U+0072 U+0067
//
// my_company.com --> my_company.com --> my_company.com
// Original: U+006D U+0079 U+005F U+0063 U+006F U+006D U+0070 U+0061 U+006E U+0079 U+002E U+0063 U+006F U+006D
// Restored: U+006D U+0079 U+005F U+0063 U+006F U+006D U+0070 U+0061 U+006E U+0079 U+002E U+0063 U+006F U+006D
Imports System.Globalization
Module Example
Public Sub Main()
Dim names() As String = { "bücher.com", "мойдомен.рф", "παράδειγμα.δοκιμή",
"mycharity" + ChrW(&h3002) + "org",
"prose" + ChrW(0) + "ware.com", "proseware..com", "a.org",
"my_company.com" }
Dim idn As New IdnMapping()
For Each name In names
Try
Dim punyCode As String = idn.GetAscii(name)
Dim name2 As String = idn.GetUnicode(punyCode)
Console.WriteLine("{0} --> {1} --> {2}", name, punyCode, name2)
Console.WriteLine("Original: {0}", ShowCodePoints(name))
Console.WriteLine("Restored: {0}", ShowCodePoints(name2))
Catch e As ArgumentException
Console.WriteLine("{0} is not a valid domain name.", name)
End Try
Console.WriteLine()
Next
End Sub
Private Function ShowCodePoints(str1 As String) As String
Dim output As String = ""
For Each ch In str1
output += String.Format("U+{0} ", Convert.ToUInt16(ch).ToString("X4"))
Next
Return output
End Function
End Module
' The example displays the following output:
' bücher.com --> xn--bcher-kva.com --> bücher.com
' Original: U+0062 U+00FC U+0063 U+0068 U+0065 U+0072 U+002E U+0063 U+006F U+006D
' Restored: U+0062 U+00FC U+0063 U+0068 U+0065 U+0072 U+002E U+0063 U+006F U+006D
'
' мойдомен.рф --> xn--d1acklchcc.xn--p1ai --> мойдомен.рф
' Original: U+043C U+043E U+0439 U+0434 U+043E U+043C U+0435 U+043D U+002E U+0440 U+0444
' Restored: U+043C U+043E U+0439 U+0434 U+043E U+043C U+0435 U+043D U+002E U+0440 U+0444
'
' παράδειγμα.δοκιμή --> xn--hxajbheg2az3al.xn--jxalpdlp --> παράδειγμα.δοκιμή
' Original: U+03C0 U+03B1 U+03C1 U+03AC U+03B4 U+03B5 U+03B9 U+03B3 U+03BC U+03B1 U+002E U+03B4 U+03BF U+03BA U+03B9 U+03BC U+03AE
' Restored: U+03C0 U+03B1 U+03C1 U+03AC U+03B4 U+03B5 U+03B9 U+03B3 U+03BC U+03B1 U+002E U+03B4 U+03BF U+03BA U+03B9 U+03BC U+03AE
'
' mycharity。org --> mycharity.org --> mycharity.org
' Original: U+006D U+0079 U+0063 U+0068 U+0061 U+0072 U+0069 U+0074 U+0079 U+3002 U+006F U+0072 U+0067
' Restored: U+006D U+0079 U+0063 U+0068 U+0061 U+0072 U+0069 U+0074 U+0079 U+002E U+006F U+0072 U+0067
'
' prose ware.com is not a valid domain name.
'
' proseware..com is not a valid domain name.
'
' a.org --> a.org --> a.org
' Original: U+0061 U+002E U+006F U+0072 U+0067
' Restored: U+0061 U+002E U+006F U+0072 U+0067
'
' my_company.com --> my_company.com --> my_company.com
' Original: U+006D U+0079 U+005F U+0063 U+006F U+006D U+0070 U+0061 U+006E U+0079 U+002E U+0063 U+006F U+006D
' Restored: U+006D U+0079 U+005F U+0063 U+006F U+006D U+0070 U+0061 U+006E U+0079 U+002E U+0063 U+006F U+006D
Poznámky
Parametr unicode určuje řetězec jednoho nebo více popisků, které se skládají z platných znaků Unicode. Popisky jsou oddělené oddělovači popisků. Parametr unicode nemůže začínat oddělovačem popisků, ale může obsahovat a volitelně končit oddělovačem. Oddělovače popisků jsou FULL STOP (tečka, U+002E), IDEOGRAPHIC FULL STOP (U+3002), FULLWIDTH FULL STOP (U+FF0E) a HALFWIDTH IDEOGRAPHIC FULL STOP (U+FF61). Například název domény "www.adatum.com" se skládá z popisků, "www", "adatum" a "com", oddělených tečkami.
Popisek nesmí obsahovat žádný z následujících znaků:
Znaky ovládacího prvku Unicode od U+0001 do U+001F a U+007F.
Nepřiřazené znaky Unicode, pokud je
falsehodnota AllowUnassigned vlastnosti .Nestandardní znaky v oblasti znaků US-ASCII, například MEZERA (U+0020), VYKŘIČNÍK (U+0021) a MALÁ ČÁRA (U+005F), pokud je
truehodnota UseStd3AsciiRules vlastnosti .Znaky, které jsou zakázány konkrétní verzí standardu IDNA. Další informace o zakázaných znacích najdete v dokumentu RFC 3454: Příprava internationalizovaných řetězců ("stringprep") pro IDNA 2003 a RFC 5982: Body kódu Unicode a internationalizované názvy domén pro aplikace pro IDNA 2008.
Metoda GetAscii převede všechny oddělovače popisků na FULL STOP (tečka, U+002E).
Pokud unicode neobsahuje žádné znaky mimo rozsah znaků US-ASCII a nejsou zakázány žádné znaky v oblasti znaků US-ASCII, vrátí unicode metoda beze změny.
Poznámky pro volající
V rozhraní .NET Framework 4.5 IdnMapping třída podporuje různé verze standardu IDNA v závislosti na používaném operačním systému:
Při spuštění v systému Windows 8 podporuje verzi standardu IDNA 2008, která je popsána rfC 5891: Internationalized Domain Names in Applications (IDNA): Protocol.
Při spuštění ve starších verzích operačního systému Windows podporuje verzi standardu 2003, kterou popisuje RFC 3490: Internationalizing Domain Names in Applications (IDNA).
Informace o rozdílech ve způsobu, jakým tyto standardy zpracovávají konkrétní sady znaků, najdete v tématu Technické standardy Unicode č. 46: Zpracování kompatibility IDNA .
Platí pro
GetAscii(String, Int32)
- Zdroj:
- IdnMapping.cs
- Zdroj:
- IdnMapping.cs
- Zdroj:
- IdnMapping.cs
- Zdroj:
- IdnMapping.cs
- Zdroj:
- IdnMapping.cs
Zakóduje podřetězdí popisků názvu domény, které obsahují znaky Unicode mimo rozsah znaků US-ASCII. Podřetězc je převeden na řetězec zobrazovaných znaků Unicode v oblasti znaků US-ASCII a je formátován podle standardu IDNA.
public:
System::String ^ GetAscii(System::String ^ unicode, int index);
public string GetAscii(string unicode, int index);
member this.GetAscii : string * int -> string
Public Function GetAscii (unicode As String, index As Integer) As String
Parametry
- unicode
- String
Řetězec, který se má převést, který se skládá z jednoho nebo více popisků názvu domény oddělených oddělovači popisků.
- index
- Int32
Posun unicode založený na nule, který určuje začátek podřetězdce, který se má převést. Operace převodu unicode pokračuje na konec řetězce.
Návraty
Ekvivalent podřetězdce určeného unicode parametry a index skládají se ze zobrazených znaků Unicode v oblasti znaků US-ASCII (U+0020 až U+007E) a formátované podle standardu IDNA.
Výjimky
unicode je null.
unicode je neplatná na AllowUnassigned základě vlastností a UseStd3AsciiRules standardu IDNA.
Poznámky
index Parametry unicode definují podřetězi s jedním nebo více popisky, které se skládají z platných znaků Unicode. Popisky jsou oddělené oddělovači popisků. První znak podřetětěce nemůže začínat oddělovačem popisků, ale může obsahovat a volitelně končit oddělovačem. Oddělovače popisků jsou FULL STOP (tečka, U+002E), IDEOGRAPHIC FULL STOP (U+3002), FULLWIDTH FULL STOP (U+FF0E) a HALFWIDTH IDEOGRAPHIC FULL STOP (U+FF61). Například název domény "www.adatum.com" se skládá z popisků, "www", "adatum" a "com", oddělených tečkami.
Popisek nesmí obsahovat žádný z následujících znaků:
Znaky ovládacího prvku Unicode od U+0001 do U+001F a U+007F.
Nepřiřazené znaky Unicode v závislosti na hodnotě AllowUnassigned vlastnosti.
Nestandardní znaky v oblasti znaků US-ASCII, například MEZERA (U+0020), VYKŘIČNÍK (U+0021) a MALÁ ČÁRA (U+005F) v závislosti na hodnotě UseStd3AsciiRules vlastnosti.
Znaky, které jsou zakázány konkrétní verzí standardu IDNA. Další informace o zakázaných znacích najdete v dokumentu RFC 3454: Příprava internationalizovaných řetězců ("stringprep") pro IDNA 2003 a RFC 5982: Body kódu Unicode a internationalizované názvy domén pro aplikace pro IDNA 2008.
Metoda GetAscii převede všechny oddělovače popisků na FULL STOP (tečka, U+002E).
Pokud unicode neobsahuje žádné znaky mimo rozsah znaků US-ASCII a nejsou zakázány žádné znaky v oblasti znaků US-ASCII, vrátí unicode metoda beze změny.
Poznámky pro volající
V rozhraní .NET Framework 4.5 IdnMapping třída podporuje různé verze standardu IDNA v závislosti na používaném operačním systému:
Při spuštění v systému Windows 8 podporuje verzi standardu IDNA 2008, která je popsána rfC 5891: Internationalized Domain Names in Applications (IDNA): Protocol.
Při spuštění ve starších verzích operačního systému Windows podporuje verzi standardu 2003, kterou popisuje RFC 3490: Internationalizing Domain Names in Applications (IDNA).
Informace o rozdílech ve způsobu, jakým tyto standardy zpracovávají konkrétní sady znaků, najdete v tématu Technické standardy Unicode č. 46: Zpracování kompatibility IDNA .
Platí pro
GetAscii(String, Int32, Int32)
- Zdroj:
- IdnMapping.cs
- Zdroj:
- IdnMapping.cs
- Zdroj:
- IdnMapping.cs
- Zdroj:
- IdnMapping.cs
- Zdroj:
- IdnMapping.cs
Zakóduje zadaný počet znaků v podřetězdí popisků názvů domén, které obsahují znaky Unicode mimo rozsah znaků US-ASCII. Podřetězc je převeden na řetězec zobrazovaných znaků Unicode v oblasti znaků US-ASCII a je formátován podle standardu IDNA.
public:
System::String ^ GetAscii(System::String ^ unicode, int index, int count);
public string GetAscii(string unicode, int index, int count);
member this.GetAscii : string * int * int -> string
Public Function GetAscii (unicode As String, index As Integer, count As Integer) As String
Parametry
- unicode
- String
Řetězec, který se má převést, který se skládá z jednoho nebo více popisků názvu domény oddělených oddělovači popisků.
- index
- Int32
Posun unicode založený na nule, který určuje začátek podřetězdce.
- count
- Int32
Počet znaků, které se mají převést v podřetězci, která začíná na pozici určené index v řetězci unicode .
Návraty
Ekvivalent podřetětěce určeného znakem unicode, indexa count parametry, které se skládají ze zobrazených znaků Unicode v oblasti znaků US-ASCII (U+0020 až U+007E) a formátované podle standardu IDNA.
Výjimky
unicode je null.
index nebo count je menší než nula.
nebo
index je větší než délka unicode.
nebo
index je větší než délka unicode minus count.
unicode je neplatná na AllowUnassigned základě vlastností a UseStd3AsciiRules standardu IDNA.
Příklady
Následující příklad používá metodu k převodu GetAscii(String, Int32, Int32) mezinárodního názvu domény na název domény, který odpovídá standardu IDNA. Metoda GetUnicode(String, Int32, Int32) pak převede standardizovaný název domény zpět na původní název domény, ale nahradí původní oddělovače popisků standardním oddělovačem popisků.
// This example demonstrates the GetAscii and GetUnicode methods.
// For sake of illustration, this example uses the most complex
// form of those methods, not the most convenient.
using System;
using System.Globalization;
class Sample
{
public static void Main()
{
/*
Define a domain name consisting of the labels: GREEK SMALL LETTER
PI (U+03C0); IDEOGRAPHIC FULL STOP (U+3002); GREEK SMALL LETTER
THETA (U+03B8); FULLWIDTH FULL STOP (U+FF0E); and "com".
*/
string name = "\u03C0\u3002\u03B8\uFF0Ecom";
string international;
string nonInternational;
string msg1 = "the original non-internationalized \ndomain name:";
string msg2 = "Allow unassigned characters?: {0}";
string msg3 = "Use non-internationalized rules?: {0}";
string msg4 = "Convert the non-internationalized domain name to international format...";
string msg5 = "Display the encoded domain name:\n\"{0}\"";
string msg6 = "the encoded domain name:";
string msg7 = "Convert the internationalized domain name to non-international format...";
string msg8 = "the reconstituted non-internationalized \ndomain name:";
string msg9 = "Visually compare the code points of the reconstituted string to the " +
"original.\n" +
"Note that the reconstituted string contains standard label " +
"separators (U+002e).";
// ----------------------------------------------------------------------------
CodePoints(name, msg1);
// ----------------------------------------------------------------------------
IdnMapping idn = new IdnMapping();
Console.WriteLine(msg2, idn.AllowUnassigned);
Console.WriteLine(msg3, idn.UseStd3AsciiRules);
Console.WriteLine();
// ----------------------------------------------------------------------------
Console.WriteLine(msg4);
international = idn.GetAscii(name, 0, name.Length);
Console.WriteLine(msg5, international);
Console.WriteLine();
CodePoints(international, msg6);
// ----------------------------------------------------------------------------
Console.WriteLine(msg7);
nonInternational = idn.GetUnicode(international, 0, international.Length);
CodePoints(nonInternational, msg8);
Console.WriteLine(msg9);
}
// ----------------------------------------------------------------------------
static void CodePoints(string value, string title)
{
Console.WriteLine("Display the Unicode code points of {0}", title);
foreach (char c in value)
{
Console.Write("{0:x4} ", Convert.ToInt32(c));
}
Console.WriteLine();
Console.WriteLine();
}
}
/*
This code example produces the following results:
Display the Unicode code points of the original non-internationalized
domain name:
03c0 3002 03b8 ff0e 0063 006f 006d
Allow unassigned characters?: False
Use non-internationalized rules?: False
Convert the non-internationalized domain name to international format...
Display the encoded domain name:
"xn--1xa.xn--txa.com"
Display the Unicode code points of the encoded domain name:
0078 006e 002d 002d 0031 0078 0061 002e 0078 006e 002d 002d 0074 0078 0061 002e 0063 006f
006d
Convert the internationalized domain name to non-international format...
Display the Unicode code points of the reconstituted non-internationalized
domain name:
03c0 002e 03b8 002e 0063 006f 006d
Visually compare the code points of the reconstituted string to the original.
Note that the reconstituted string contains standard label separators (U+002e).
*/
' This example demonstrates the GetAscii and GetUnicode methods.
' For sake of illustration, this example uses the most complex
' form of those methods, not the most convenient.
Imports System.Globalization
Class Sample
Public Shared Sub Main()
' Define a domain name consisting of the labels: GREEK SMALL LETTER
' PI (U+03C0); IDEOGRAPHIC FULL STOP (U+3002); GREEK SMALL LETTER
' THETA (U+03B8); FULLWIDTH FULL STOP (U+FF0E); and "com".
Dim name As String = "π。θ.com"
Dim international As String
Dim nonInternational As String
Dim msg1 As String = "the original non-internationalized " & vbCrLf & "domain name:"
Dim msg2 As String = "Allow unassigned characters?: {0}"
Dim msg3 As String = "Use non-internationalized rules?: {0}"
Dim msg4 As String = "Convert the non-internationalized domain name to international format..."
Dim msg5 As String = "Display the encoded domain name:" & vbCrLf & """{0}"""
Dim msg6 As String = "the encoded domain name:"
Dim msg7 As String = "Convert the internationalized domain name to non-international format..."
Dim msg8 As String = "the reconstituted non-internationalized " & vbCrLf & "domain name:"
Dim msg9 As String = "Visually compare the code points of the reconstituted string to the " & _
"original." & vbCrLf & _
"Note that the reconstituted string contains standard label " & _
"separators (U+002e)."
' ----------------------------------------------------------------------------
CodePoints(name, msg1)
' ----------------------------------------------------------------------------
Dim idn As New IdnMapping()
Console.WriteLine(msg2, idn.AllowUnassigned)
Console.WriteLine(msg3, idn.UseStd3AsciiRules)
Console.WriteLine()
' ----------------------------------------------------------------------------
Console.WriteLine(msg4)
international = idn.GetAscii(name, 0, name.Length)
Console.WriteLine(msg5, international)
Console.WriteLine()
CodePoints(international, msg6)
' ----------------------------------------------------------------------------
Console.WriteLine(msg7)
nonInternational = idn.GetUnicode(international, 0, international.Length)
CodePoints(nonInternational, msg8)
Console.WriteLine(msg9)
End Sub
' ----------------------------------------------------------------------------
Shared Sub CodePoints(ByVal value As String, ByVal title As String)
Console.WriteLine("Display the Unicode code points of {0}", title)
Dim c As Char
For Each c In value
Console.Write("{0:x4} ", Convert.ToInt32(c))
Next c
Console.WriteLine()
Console.WriteLine()
End Sub
End Class
'
'This code example produces the following results:
'
'Display the Unicode code points of the original non-internationalized
'domain name:
'03c0 3002 03b8 ff0e 0063 006f 006d
'
'Allow unassigned characters?: False
'Use non-internationalized rules?: False
'
'Convert the non-internationalized domain name to international format...
'Display the encoded domain name:
'"xn--1xa.xn--txa.com"
'
'Display the Unicode code points of the encoded domain name:
'0078 006e 002d 002d 0031 0078 0061 002e 0078 006e 002d 002d 0074 0078 0061 002e 0063 006f
'006d
'
'Convert the internationalized domain name to non-international format...
'Display the Unicode code points of the reconstituted non-internationalized
'domain name:
'03c0 002e 03b8 002e 0063 006f 006d
'
'Visually compare the code points of the reconstituted string to the original.
'Note that the reconstituted string contains standard label separators (U+002e).
'
Poznámky
Parametry Unicodea count , indexdefinují podřetězi s jedním nebo více popisky, které se skládají z platných znaků Unicode. Popisky jsou oddělené oddělovači popisků. První znak podřetětěce nemůže začínat oddělovačem popisků, ale může obsahovat a volitelně končit oddělovačem. Oddělovače popisků jsou FULL STOP (tečka, U+002E), IDEOGRAPHIC FULL STOP (U+3002), FULLWIDTH FULL STOP (U+FF0E) a HALFWIDTH IDEOGRAPHIC FULL STOP (U+FF61). Například název domény "www.adatum.com" se skládá z popisků, "www", "adatum" a "com", oddělených tečkami.
Popisek nesmí obsahovat žádný z následujících znaků:
Znaky ovládacího prvku Unicode od U+0001 do U+001F a U+007F.
Nepřiřazené znaky Unicode v závislosti na hodnotě AllowUnassigned vlastnosti.
Nestandardní znaky v oblasti znaků US-ASCII, například MEZERA (U+0020), VYKŘIČNÍK (U+0021) a MALÁ ČÁRA (U+005F) v závislosti na hodnotě UseStd3AsciiRules vlastnosti.
Znaky, které jsou zakázány konkrétní verzí standardu IDNA. Další informace o zakázaných znacích najdete v dokumentu RFC 3454: Příprava internationalizovaných řetězců ("stringprep") pro IDNA 2003 a RFC 5982: Body kódu Unicode a internationalizované názvy domén pro aplikace pro IDNA 2008.
Metoda GetAscii převede všechny oddělovače popisků na FULL STOP (tečka, U+002E). Pokud podřetězdí neobsahuje žádné znaky mimo rozsah znaků US-ASCII a nejsou zakázány žádné znaky v US-ASCII rozsah znaků, metoda vrátí podřetězdí beze změny.
Poznámky pro volající
V rozhraní .NET Framework 4.5 IdnMapping třída podporuje různé verze standardu IDNA v závislosti na používaném operačním systému:
Při spuštění v systému Windows 8 podporuje verzi standardu IDNA 2008, která je popsána rfC 5891: Internationalized Domain Names in Applications (IDNA): Protocol.
Při spuštění ve starších verzích operačního systému Windows podporuje verzi standardu 2003, kterou popisuje RFC 3490: Internationalizing Domain Names in Applications (IDNA).
Informace o rozdílech ve způsobu, jakým tyto standardy zpracovávají konkrétní sady znaků, najdete v tématu Technické standardy Unicode č. 46: Zpracování kompatibility IDNA .