IdnMapping.GetAscii Metodo
Definizione
Importante
Alcune informazioni sono relative alla release non definitiva del prodotto, che potrebbe subire modifiche significative prima della release definitiva. Microsoft non riconosce alcuna garanzia, espressa o implicita, in merito alle informazioni qui fornite.
Codifica una stringa di etichette di nome di dominio che includono caratteri Unicode non compresi nell'intervallo di caratteri US-ASCII in una stringa di caratteri Unicode visualizzabili nell'intervallo di caratteri US-ASCII (da U+0020 a U+007E). La stringa viene formattata in base allo standard IDNA.
Overload
GetAscii(String) |
Codifica una stringa di etichette del nome di dominio costituite da caratteri Unicode in una stringa di caratteri Unicode visualizzabili compresi nell'intervallo di caratteri US-ASCII. La stringa viene formattata in base allo standard IDNA. |
GetAscii(String, Int32) |
Codifica una sottostringa di etichette di nome di dominio che include caratteri Unicode non compresi nell'intervallo di caratteri US-ASCII. La sottostringa viene convertita in una stringa di caratteri Unicode visualizzabili nell'intervallo di caratteri US-ASCII e formattata in base allo standard IDNA. |
GetAscii(String, Int32, Int32) |
Codifica il numero specificato di caratteri in una sottostringa delle etichette dei nomi di dominio che includono caratteri Unicode all'esterno dell'intervallo di caratteri US-ASCII. La sottostringa viene convertita in una stringa di caratteri Unicode visualizzabili nell'intervallo di caratteri US-ASCII e formattata in base allo standard IDNA. |
GetAscii(String)
- Origine:
- IdnMapping.cs
- Origine:
- IdnMapping.cs
- Origine:
- IdnMapping.cs
Codifica una stringa di etichette del nome di dominio costituite da caratteri Unicode in una stringa di caratteri Unicode visualizzabili compresi nell'intervallo di caratteri US-ASCII. La stringa viene formattata in base allo standard 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
Parametri
- unicode
- String
Stringa da convertire, costituita da una o più etichette del nome di dominio delimitate da separatori di etichetta.
Restituisce
Equivalente della stringa specificata dal parametro unicode
, costituito da caratteri Unicode visualizzabili compresi nell'intervallo di caratteri US-ASCII (da U+0020 a U+007E) e formattato in base allo standard IDNA.
Eccezioni
unicode
è null
.
unicode
non è valido in base alle proprietà AllowUnassigned e UseStd3AsciiRules e allo standard IDNA.
Esempio
Nell'esempio seguente viene utilizzato il GetAscii(String) metodo per convertire una matrice di nomi di dominio internazionalizzati in Punycode, che è un equivalente codificato costituito da caratteri nell'intervallo di caratteri US-ASCII. Il GetUnicode(String) metodo converte quindi il nome di dominio Punycode nel nome di dominio originale, ma sostituisce i separatori di etichette originali con il separatore di etichette standard.
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
Commenti
Il unicode
parametro specifica una stringa di una o più etichette costituite da caratteri Unicode validi. Le etichette sono separate dai separatori di etichette. Il unicode
parametro non può iniziare con un separatore di etichetta, ma può includere e, facoltativamente, terminare con un separatore. I separatori di etichette sono FULL STOP (periodo, U+002E), IDEOGRAPHIC FULL STOP (U+3002), FULLWIDTH FULL STOP (U+FF0E) e HALFWIDTH IDEOGRAPHIC FULL STOP (U+FF61). Ad esempio, il nome di dominio "www.adatum.com" è costituito dalle etichette, "www", "adatum" e "com", separate da punti.
Un'etichetta non può contenere uno dei caratteri seguenti:
Caratteri di controllo Unicode da U+0001 a U+001F e U+007F.
Caratteri Unicode non assegnati, se il valore della AllowUnassigned proprietà è
false
.Caratteri non standard nell'intervallo di caratteri US-ASCII, ad esempio i caratteri SPACE (U+0020), EXCLAMATION MARK (U+0021) e LOW LINE (U+005F), se il valore della UseStd3AsciiRules proprietà è
true
.Caratteri non consentiti da una versione specifica dello standard IDNA. Per altre informazioni sui caratteri non consentiti, vedere RFC 3454: Preparazione di stringhe internazionalizzate ("stringprep") per IDNA 2003 e RFC 5982: i punti di codice Unicode e i nomi di dominio internazionalizzati per le applicazioni per IDNA 2008.
Il GetAscii metodo converte tutti i separatori di etichette in FULL STOP (periodo, U+002E).
Se unicode
non contiene caratteri esterni all'intervallo di caratteri US-ASCII e non sono consentiti caratteri all'interno dell'intervallo di caratteri US-ASCII, il metodo restituisce unicode
invariato.
Note per i chiamanti
In .NET Framework 4.5 la IdnMapping classe supporta versioni diverse dello standard IDNA, a seconda del sistema operativo in uso:
Quando viene eseguito in Windows 8, supporta la versione 2008 dello standard IDNA descritto da RFC 5891: Internationalized Domain Names in Applications (IDNA): Protocol.
Quando viene eseguito in versioni precedenti del sistema operativo Windows, supporta la versione 2003 dello standard descritto da RFC 3490: Internazionalizzazione dei nomi di dominio nelle applicazioni (IDNA).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).
Vedere Unicode Technical Standard #46: IDNA Compatibility Processing per le differenze nel modo in cui questi standard gestiscono determinati set di caratteri.
Si applica a
GetAscii(String, Int32)
- Origine:
- IdnMapping.cs
- Origine:
- IdnMapping.cs
- Origine:
- IdnMapping.cs
Codifica una sottostringa di etichette di nome di dominio che include caratteri Unicode non compresi nell'intervallo di caratteri US-ASCII. La sottostringa viene convertita in una stringa di caratteri Unicode visualizzabili nell'intervallo di caratteri US-ASCII e formattata in base allo standard 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
Parametri
- unicode
- String
Stringa da convertire, costituita da una o più etichette del nome di dominio delimitate da separatori di etichetta.
- index
- Int32
Offset in base zero nel parametro unicode
che specifica l'inizio della sottostringa da convertire. L'operazione di conversione continua fino alla fine della stringa unicode
.
Restituisce
Equivalente della sottostringa specificata dai parametri unicode
, index
, costituito da caratteri Unicode visualizzabili compresi nell'intervallo di caratteri US-ASCII (da U+0020 a U+007E) e formattato in base allo standard IDNA.
Eccezioni
unicode
è null
.
index
è minore di zero.
-oppure-
index
è maggiore della lunghezza di unicode
.
unicode
non è valido in base alle proprietà AllowUnassigned e UseStd3AsciiRules e allo standard IDNA.
Commenti
I unicode
parametri e index
definiscono una sottostringa con una o più etichette costituite da caratteri Unicode validi. Le etichette sono separate dai separatori di etichette. Il primo carattere della sottostringa non può iniziare con un separatore di etichette, ma può includere e facoltativamente terminare con un separatore. I separatori di etichette sono FULL STOP (periodo, U+002E), IDEOGRAPHIC FULL STOP (U+3002), FULLWIDTH FULL STOP (U+FF0E) e HALFWIDTH IDEOGRAPHIC FULL STOP (U+FF61). Ad esempio, il nome di dominio "www.adatum.com" è costituito dalle etichette, "www", "adatum" e "com", separate da punti.
Un'etichetta non può contenere uno dei caratteri seguenti:
Caratteri di controllo Unicode da U+0001 a U+001F e U+007F.
Caratteri Unicode non assegnati, a seconda del valore della AllowUnassigned proprietà.
Caratteri non standard nell'intervallo di caratteri US-ASCII, ad esempio i caratteri SPACE (U+0020), EXCLAMATION MARK (U+0021) e LOW LINE (U+005F), a seconda del valore della UseStd3AsciiRules proprietà.
Caratteri non consentiti da una versione specifica dello standard IDNA. Per altre informazioni sui caratteri non consentiti, vedere RFC 3454: Preparazione di stringhe internazionalizzate ("stringprep") per IDNA 2003 e RFC 5982: i punti di codice Unicode e i nomi di dominio internazionalizzati per le applicazioni per IDNA 2008.
Il GetAscii metodo converte tutti i separatori di etichette in FULL STOP (periodo, U+002E).
Se unicode
non contiene caratteri esterni all'intervallo di caratteri US-ASCII e non sono consentiti caratteri all'interno dell'intervallo di caratteri US-ASCII, il metodo restituisce unicode
invariato.
Note per i chiamanti
In .NET Framework 4.5 la IdnMapping classe supporta versioni diverse dello standard IDNA, a seconda del sistema operativo in uso:
Quando viene eseguito in Windows 8, supporta la versione 2008 dello standard IDNA descritto da RFC 5891: Internationalized Domain Names in Applications (IDNA): Protocol.
Quando viene eseguito in versioni precedenti del sistema operativo Windows, supporta la versione 2003 dello standard descritto da RFC 3490: Internazionalizzazione dei nomi di dominio nelle applicazioni (IDNA).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).
Vedere Unicode Technical Standard #46: IDNA Compatibility Processing per le differenze nel modo in cui questi standard gestiscono determinati set di caratteri.
Si applica a
GetAscii(String, Int32, Int32)
- Origine:
- IdnMapping.cs
- Origine:
- IdnMapping.cs
- Origine:
- IdnMapping.cs
Codifica il numero specificato di caratteri in una sottostringa delle etichette dei nomi di dominio che includono caratteri Unicode all'esterno dell'intervallo di caratteri US-ASCII. La sottostringa viene convertita in una stringa di caratteri Unicode visualizzabili nell'intervallo di caratteri US-ASCII e formattata in base allo standard 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
Parametri
- unicode
- String
Stringa da convertire, costituita da una o più etichette del nome di dominio delimitate da separatori di etichetta.
- index
- Int32
Offset in base zero nel parametro unicode
che specifica l'inizio della sottostringa.
- count
- Int32
Numero di caratteri da convertire nella sottostringa che inizia nella posizione specificata dal parametro index
nella stringa unicode
.
Restituisce
Equivalente della sottostringa specificata dai parametri unicode
, index
e count
, costituito da caratteri Unicode visualizzabili compresi nell'intervallo di caratteri US-ASCII (da U+0020 a U+007E) e formattato in base allo standard IDNA.
Eccezioni
unicode
è null
.
index
o count
è minore di zero.
-oppure-
index
è maggiore della lunghezza di unicode
.
-oppure-
index
è maggiore della lunghezza di unicode
, meno count
.
unicode
non è valido in base alle proprietà AllowUnassigned e UseStd3AsciiRules e allo standard IDNA.
Esempio
Nell'esempio seguente viene utilizzato il GetAscii(String, Int32, Int32) metodo per convertire un nome di dominio internazionalizzato in un nome di dominio conforme allo standard IDNA. Il GetUnicode(String, Int32, Int32) metodo converte quindi di nuovo il nome di dominio standardizzato nel nome di dominio originale, ma sostituisce i separatori di etichette originali con il separatore di etichette standard.
// 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).
'
Commenti
I Unicode
parametri , index
e count
definiscono una sottostringa con una o più etichette costituite da caratteri Unicode validi. Le etichette sono separate dai separatori di etichette. Il primo carattere della sottostringa non può iniziare con un separatore di etichette, ma può includere e facoltativamente terminare con un separatore. I separatori di etichette sono FULL STOP (periodo, U+002E), IDEOGRAPHIC FULL STOP (U+3002), FULLWIDTH FULL STOP (U+FF0E) e HALFWIDTH IDEOGRAPHIC FULL STOP (U+FF61). Ad esempio, il nome di dominio "www.adatum.com" è costituito dalle etichette, "www", "adatum" e "com", separate da punti.
Un'etichetta non può contenere uno dei caratteri seguenti:
Caratteri di controllo Unicode da U+0001 a U+001F e U+007F.
Caratteri Unicode non assegnati, a seconda del valore della AllowUnassigned proprietà.
Caratteri non standard nell'intervallo di caratteri US-ASCII, ad esempio i caratteri SPACE (U+0020), EXCLAMATION MARK (U+0021) e LOW LINE (U+005F), a seconda del valore della UseStd3AsciiRules proprietà.
Caratteri non consentiti da una versione specifica dello standard IDNA. Per altre informazioni sui caratteri non consentiti, vedere RFC 3454: Preparazione di stringhe internazionalizzate ("stringprep") per IDNA 2003 e RFC 5982: i punti di codice Unicode e i nomi di dominio internazionalizzati per le applicazioni per IDNA 2008.
Il GetAscii metodo converte tutti i separatori di etichette in FULL STOP (periodo, U+002E). Se la sottostringa non contiene caratteri esterni all'intervallo di caratteri US-ASCII e non sono consentiti caratteri all'interno dell'intervallo di caratteri US-ASCII, il metodo restituisce la sottostringa invariata.
Note per i chiamanti
In .NET Framework 4.5 la IdnMapping classe supporta versioni diverse dello standard IDNA, a seconda del sistema operativo in uso:
Quando viene eseguito in Windows 8, supporta la versione 2008 dello standard IDNA descritto da RFC 5891: Internationalized Domain Names in Applications (IDNA): Protocol.
Quando viene eseguito in versioni precedenti del sistema operativo Windows, supporta la versione 2003 dello standard descritto da RFC 3490: Internazionalizzazione dei nomi di dominio nelle applicazioni (IDNA).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).
Vedere Unicode Technical Standard #46: IDNA Compatibility Processing per le differenze nel modo in cui questi standard gestiscono determinati set di caratteri.