IdnMapping.GetUnicode 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.
Decodifica una o più etichette dei nomi di dominio codificate in base allo standard IDNA a una stringa di caratteri Unicode.
Overload
| Nome | Descrizione |
|---|---|
| GetUnicode(String) |
Decodifica una stringa di una o più etichette dei nomi di dominio, codificate in base allo standard IDNA, in una stringa di caratteri Unicode. |
| GetUnicode(String, Int32) |
Decodifica una sottostringa di una o più etichette dei nomi di dominio, codificate in base allo standard IDNA, in una stringa di caratteri Unicode. |
| GetUnicode(String, Int32, Int32) |
Decodifica una sottostringa di una lunghezza specificata che contiene una o più etichette dei nomi di dominio, codificate in base allo standard IDNA, a una stringa di caratteri Unicode. |
GetUnicode(String)
- Origine:
- IdnMapping.cs
- Origine:
- IdnMapping.cs
- Origine:
- IdnMapping.cs
- Origine:
- IdnMapping.cs
- Origine:
- IdnMapping.cs
Decodifica una stringa di una o più etichette dei nomi di dominio, codificate in base allo standard IDNA, in una stringa di caratteri Unicode.
public:
System::String ^ GetUnicode(System::String ^ ascii);
public string GetUnicode(string ascii);
member this.GetUnicode : string -> string
Public Function GetUnicode (ascii As String) As String
Parametri
- ascii
- String
Stringa da decodificare, costituita da una o più etichette nell'intervallo di caratteri US-ASCII (da U+0020 a U+007E) codificato in base allo standard IDNA.
Valori restituiti
Equivalente Unicode della sottostringa IDNA specificata dal ascii parametro .
Eccezioni
ascii è null.
ascii non è valido in base alle AllowUnassigned proprietà e UseStd3AsciiRules e allo standard IDNA.
Esempio
Nell'esempio seguente viene usato il GetAscii(String) metodo per convertire una matrice di nomi di dominio internazionalizzati in Punycode. Il GetUnicode(String) metodo converte quindi di nuovo il nome di dominio Punycode nel nome di dominio originale, ma sostituisce i separatori di etichetta originali con il separatore di etichetta 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
Per altre informazioni su nomi di dominio, etichette e separatori di etichette, vedere le osservazioni per il IdnMapping.GetAscii(String, Int32, Int32) metodo .
Si applica a
GetUnicode(String, Int32)
- Origine:
- IdnMapping.cs
- Origine:
- IdnMapping.cs
- Origine:
- IdnMapping.cs
- Origine:
- IdnMapping.cs
- Origine:
- IdnMapping.cs
Decodifica una sottostringa di una o più etichette dei nomi di dominio, codificate in base allo standard IDNA, in una stringa di caratteri Unicode.
public:
System::String ^ GetUnicode(System::String ^ ascii, int index);
public string GetUnicode(string ascii, int index);
member this.GetUnicode : string * int -> string
Public Function GetUnicode (ascii As String, index As Integer) As String
Parametri
- ascii
- String
Stringa da decodificare, costituita da una o più etichette nell'intervallo di caratteri US-ASCII (da U+0020 a U+007E) codificato in base allo standard IDNA.
- index
- Int32
Offset in base zero in ascii che specifica l'inizio della sottostringa da decodificare. L'operazione di decodifica continua fino alla fine della ascii stringa.
Valori restituiti
Equivalente Unicode della sottostringa IDNA specificata dai ascii parametri e index .
Eccezioni
ascii è null.
index è minore di zero.
oppure
index è maggiore della lunghezza di ascii.
ascii non è valido in base alle AllowUnassigned proprietà e UseStd3AsciiRules e allo standard IDNA.
Commenti
Per altre informazioni su nomi di dominio, etichette e separatori di etichette, vedere le osservazioni per il IdnMapping.GetAscii(String, Int32, Int32) metodo .
Si applica a
GetUnicode(String, Int32, Int32)
- Origine:
- IdnMapping.cs
- Origine:
- IdnMapping.cs
- Origine:
- IdnMapping.cs
- Origine:
- IdnMapping.cs
- Origine:
- IdnMapping.cs
Decodifica una sottostringa di una lunghezza specificata che contiene una o più etichette dei nomi di dominio, codificate in base allo standard IDNA, a una stringa di caratteri Unicode.
public:
System::String ^ GetUnicode(System::String ^ ascii, int index, int count);
public string GetUnicode(string ascii, int index, int count);
member this.GetUnicode : string * int * int -> string
Public Function GetUnicode (ascii As String, index As Integer, count As Integer) As String
Parametri
- ascii
- String
Stringa da decodificare, costituita da una o più etichette nell'intervallo di caratteri US-ASCII (da U+0020 a U+007E) codificato in base allo standard IDNA.
- index
- Int32
Offset in base zero in ascii che specifica l'inizio della sottostringa.
- count
- Int32
Numero di caratteri da convertire nella sottostringa che inizia in corrispondenza della posizione specificata da index nella ascii stringa.
Valori restituiti
Equivalente Unicode della sottostringa IDNA specificata dai asciiparametri , indexe count .
Eccezioni
ascii è null.
index o count è minore di zero.
oppure
index è maggiore della lunghezza di ascii.
oppure
index è maggiore della lunghezza di ascii meno count.
ascii non è valido in base alle AllowUnassigned proprietà e UseStd3AsciiRules e allo standard IDNA.
Commenti
Per altre informazioni su nomi di dominio, etichette e separatori di etichette, vedere le osservazioni per il IdnMapping.GetAscii(String, Int32, Int32) metodo .