IdnMapping.GetAscii Metod
Definition
Viktigt
En del information gäller för förhandsversionen av en produkt och kan komma att ändras avsevärt innan produkten blir allmänt tillgänglig. Microsoft lämnar inga garantier, uttryckliga eller underförstådda, avseende informationen som visas här.
Kodar en sträng med domännamnsetiketter som innehåller Unicode-tecken utanför US-ASCII teckenintervallet till en sträng med visningsbara Unicode-tecken i US-ASCII teckenintervall (U+0020 till U+007E). Strängen formateras enligt IDNA-standarden.
Överlagringar
| Name | Description |
|---|---|
| GetAscii(String) |
Kodar en sträng med domännamnsetiketter som består av Unicode-tecken till en sträng med visningsbara Unicode-tecken i US-ASCII teckenintervall. Strängen formateras enligt IDNA-standarden. |
| GetAscii(String, Int32) |
Kodar en delsträng med domännamnsetiketter som innehåller Unicode-tecken utanför US-ASCII teckenintervall. Delsträngen konverteras till en sträng med visningsbara Unicode-tecken i US-ASCII teckenintervall och formateras enligt IDNA-standarden. |
| GetAscii(String, Int32, Int32) |
Kodar det angivna antalet tecken i en delsträng med domännamnsetiketter som innehåller Unicode-tecken utanför US-ASCII teckenintervall. Delsträngen konverteras till en sträng med visningsbara Unicode-tecken i US-ASCII teckenintervall och formateras enligt IDNA-standarden. |
GetAscii(String)
- Källa:
- IdnMapping.cs
- Källa:
- IdnMapping.cs
- Källa:
- IdnMapping.cs
- Källa:
- IdnMapping.cs
- Källa:
- IdnMapping.cs
Kodar en sträng med domännamnsetiketter som består av Unicode-tecken till en sträng med visningsbara Unicode-tecken i US-ASCII teckenintervall. Strängen formateras enligt IDNA-standarden.
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
Parametrar
- unicode
- String
Strängen som ska konverteras, som består av en eller flera domännamnsetiketter avgränsade med etikettavgränsare.
Returer
Motsvarigheten till strängen som anges av parametern unicode , bestående av visningsbara Unicode-tecken i US-ASCII teckenintervallet (U+0020 till U+007E) och formaterat enligt IDNA-standarden.
Undantag
unicode är null.
unicode är ogiltigt baserat på AllowUnassigned egenskaperna och UseStd3AsciiRules och IDNA-standarden.
Exempel
I följande exempel används GetAscii(String) metoden för att konvertera en matris med internationaliserade domännamn till Punycode, vilket är en kodad motsvarighet som består av tecken i US-ASCII teckenintervall. Metoden GetUnicode(String) konverterar sedan punycode-domännamnet tillbaka till det ursprungliga domännamnet, men ersätter de ursprungliga etikettavgränsarna med standardetikettavgränsaren.
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
Kommentarer
Parametern unicode anger en sträng med en eller flera etiketter som består av giltiga Unicode-tecken. Etiketterna avgränsas med etikettavgränsare. Parametern unicode kan inte börja med en etikettavgränsare, men den kan inkludera och eventuellt avslutas med en avgränsare. Etikettavgränsarna är FULL STOP (period, U+002E), IDEOGRAPHIC FULL STOP (U+3002), FULLWIDTH FULL STOP (U+FF0E) och HALFWIDTH IDEOGRAPHIC FULL STOP (U+FF61). Domännamnet "www.adatum.com" består till exempel av etiketterna "www", "adatum" och "com", avgränsade med punkter.
En etikett får inte innehålla något av följande tecken:
Unicode-kontrolltecken från U+0001 till U+001F och U+007F.
Otilldelade Unicode-tecken om värdet för AllowUnassigned egenskapen är
false.Icke-standardtecken i US-ASCII teckenintervall, till exempel tecknen SPACE (U+0020), EXCLAMATION MARK (U+0021) och LOW LINE (U+005F), om värdet för UseStd3AsciiRules egenskapen är
true.Tecken som är förbjudna av en viss version av IDNA-standarden. Mer information om otillåtna tecken finns i RFC 3454: Förberedelse av internationaliserade strängar ("stringprep") för IDNA 2003 och RFC 5982: Unicode Code Points och internationaliserade domännamn för program för IDNA 2008.
Metoden GetAscii konverterar alla etikettavgränsare till FULL STOP (period, U+002E).
Om unicode det inte finns några tecken utanför US-ASCII teckenintervall och inga tecken inom US-ASCII teckenintervall är förbjudna, returnerar unicode metoden oförändrad.
Anteckningar till anropare
I .NET Framework 4.5 stöder klassen IdnMapping olika versioner av IDNA-standarden, beroende på vilket operativsystem som används:
När den körs på Windows 8 stöder den 2008-versionen av IDNA-standarden som beskrivs av RFC 5891: Internationaliserade domännamn i program (IDNA): Protocol.
När den körs på tidigare versioner av Windows operativsystem stöder den 2003-versionen av standarden som beskrivs av RFC 3490: Internationalisera domännamn i program (IDNA).
Se Unicode Technical Standard #46: IDNA-kompatibilitetsbearbetning för skillnader i hur dessa standarder hanterar vissa uppsättningar tecken.
Gäller för
GetAscii(String, Int32)
- Källa:
- IdnMapping.cs
- Källa:
- IdnMapping.cs
- Källa:
- IdnMapping.cs
- Källa:
- IdnMapping.cs
- Källa:
- IdnMapping.cs
Kodar en delsträng med domännamnsetiketter som innehåller Unicode-tecken utanför US-ASCII teckenintervall. Delsträngen konverteras till en sträng med visningsbara Unicode-tecken i US-ASCII teckenintervall och formateras enligt IDNA-standarden.
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
Parametrar
- unicode
- String
Strängen som ska konverteras, som består av en eller flera domännamnsetiketter avgränsade med etikettavgränsare.
- index
- Int32
En nollbaserad förskjutning till unicode som anger början av delsträngen som ska konverteras. Konverteringsåtgärden fortsätter till slutet av strängen unicode .
Returer
Motsvarigheten till delsträngen som anges av parametrarna unicode och index , som består av visningsbara Unicode-tecken i US-ASCII teckenintervallet (U+0020 till U+007E) och formaterat enligt IDNA-standarden.
Undantag
unicode är null.
unicode är ogiltigt baserat på AllowUnassigned egenskaperna och UseStd3AsciiRules och IDNA-standarden.
Kommentarer
Parametrarna unicode och index definierar en delsträng med en eller flera etiketter som består av giltiga Unicode-tecken. Etiketterna avgränsas med etikettavgränsare. Det första tecknet i delsträngen kan inte börja med en etikettavgränsare, men det kan innehålla och eventuellt avslutas med en avgränsare. Etikettavgränsarna är FULL STOP (period, U+002E), IDEOGRAPHIC FULL STOP (U+3002), FULLWIDTH FULL STOP (U+FF0E) och HALFWIDTH IDEOGRAPHIC FULL STOP (U+FF61). Domännamnet "www.adatum.com" består till exempel av etiketterna "www", "adatum" och "com", avgränsade med punkter.
En etikett får inte innehålla något av följande tecken:
Unicode-kontrolltecken från U+0001 till U+001F och U+007F.
Otilldelade Unicode-tecken, beroende på värdet för AllowUnassigned egenskapen.
Tecken som inte är standard i US-ASCII teckenintervall, till exempel tecknen SPACE (U+0020), EXCLAMATION MARK (U+0021) och LOW LINE (U+005F), beroende på egenskapens UseStd3AsciiRules värde.
Tecken som är förbjudna av en viss version av IDNA-standarden. Mer information om otillåtna tecken finns i RFC 3454: Förberedelse av internationaliserade strängar ("stringprep") för IDNA 2003 och RFC 5982: Unicode Code Points och internationaliserade domännamn för program för IDNA 2008.
Metoden GetAscii konverterar alla etikettavgränsare till FULL STOP (period, U+002E).
Om unicode det inte finns några tecken utanför US-ASCII teckenintervall och inga tecken inom US-ASCII teckenintervall är förbjudna, returnerar unicode metoden oförändrad.
Anteckningar till anropare
I .NET Framework 4.5 stöder klassen IdnMapping olika versioner av IDNA-standarden, beroende på vilket operativsystem som används:
När den körs på Windows 8 stöder den 2008-versionen av IDNA-standarden som beskrivs av RFC 5891: Internationaliserade domännamn i program (IDNA): Protocol.
När den körs på tidigare versioner av Windows operativsystem stöder den 2003-versionen av standarden som beskrivs av RFC 3490: Internationalisera domännamn i program (IDNA).
Se Unicode Technical Standard #46: IDNA-kompatibilitetsbearbetning för skillnader i hur dessa standarder hanterar vissa uppsättningar tecken.
Gäller för
GetAscii(String, Int32, Int32)
- Källa:
- IdnMapping.cs
- Källa:
- IdnMapping.cs
- Källa:
- IdnMapping.cs
- Källa:
- IdnMapping.cs
- Källa:
- IdnMapping.cs
Kodar det angivna antalet tecken i en delsträng med domännamnsetiketter som innehåller Unicode-tecken utanför US-ASCII teckenintervall. Delsträngen konverteras till en sträng med visningsbara Unicode-tecken i US-ASCII teckenintervall och formateras enligt IDNA-standarden.
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
Parametrar
- unicode
- String
Strängen som ska konverteras, som består av en eller flera domännamnsetiketter avgränsade med etikettavgränsare.
- index
- Int32
En nollbaserad förskjutning i unicode som anger början av delsträngen.
- count
- Int32
Antalet tecken som ska konverteras i delsträngen som börjar vid den position som anges av index i strängen unicode .
Returer
Motsvarigheten till delsträngen som anges av parametrarna unicode, indexoch count som består av visningsbara Unicode-tecken i US-ASCII teckenintervallet (U+0020 till U+007E) och formaterat enligt IDNA-standarden.
Undantag
unicode är null.
index eller count är mindre än noll.
-eller-
index är större än längden på unicode.
-eller-
index är större än längden unicode på minus count.
unicode är ogiltigt baserat på AllowUnassigned egenskaperna och UseStd3AsciiRules och IDNA-standarden.
Exempel
I följande exempel används GetAscii(String, Int32, Int32) metoden för att konvertera ett internationaliserat domännamn till ett domännamn som uppfyller IDNA-standarden. Metoden GetUnicode(String, Int32, Int32) konverterar sedan det standardiserade domännamnet tillbaka till det ursprungliga domännamnet, men ersätter de ursprungliga etikettavgränsarna med standardetikettavgränsaren.
// 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).
'
Kommentarer
Parametrarna Unicode, indexoch count definierar en delsträng med en eller flera etiketter som består av giltiga Unicode-tecken. Etiketterna avgränsas med etikettavgränsare. Det första tecknet i delsträngen kan inte börja med en etikettavgränsare, men det kan innehålla och eventuellt avslutas med en avgränsare. Etikettavgränsarna är FULL STOP (period, U+002E), IDEOGRAPHIC FULL STOP (U+3002), FULLWIDTH FULL STOP (U+FF0E) och HALFWIDTH IDEOGRAPHIC FULL STOP (U+FF61). Domännamnet "www.adatum.com" består till exempel av etiketterna "www", "adatum" och "com", avgränsade med punkter.
En etikett får inte innehålla något av följande tecken:
Unicode-kontrolltecken från U+0001 till U+001F och U+007F.
Otilldelade Unicode-tecken, beroende på värdet för AllowUnassigned egenskapen.
Tecken som inte är standard i US-ASCII teckenintervall, till exempel tecknen SPACE (U+0020), EXCLAMATION MARK (U+0021) och LOW LINE (U+005F), beroende på egenskapens UseStd3AsciiRules värde.
Tecken som är förbjudna av en viss version av IDNA-standarden. Mer information om otillåtna tecken finns i RFC 3454: Förberedelse av internationaliserade strängar ("stringprep") för IDNA 2003 och RFC 5982: Unicode Code Points och internationaliserade domännamn för program för IDNA 2008.
Metoden GetAscii konverterar alla etikettavgränsare till FULL STOP (period, U+002E). Om delsträngen inte innehåller några tecken utanför US-ASCII teckenintervall och inga tecken inom US-ASCII teckenintervall är förbjudna, returnerar metoden delsträngen oförändrad.
Anteckningar till anropare
I .NET Framework 4.5 stöder klassen IdnMapping olika versioner av IDNA-standarden, beroende på vilket operativsystem som används:
När den körs på Windows 8 stöder den 2008-versionen av IDNA-standarden som beskrivs av RFC 5891: Internationaliserade domännamn i program (IDNA): Protocol.
När den körs på tidigare versioner av Windows operativsystem stöder den 2003-versionen av standarden som beskrivs av RFC 3490: Internationalisera domännamn i program (IDNA).
Se Unicode Technical Standard #46: IDNA-kompatibilitetsbearbetning för skillnader i hur dessa standarder hanterar vissa uppsättningar tecken.