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 uno o più etichette del nome di dominio codificate in base allo standard IDNA in una stringa di caratteri Unicode.
Overload
GetUnicode(String) |
Decodifica una stringa di una o più etichette del nome 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 del nome 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 contenente una o più etichette del nome di dominio codificate in base allo standard IDNA in una stringa di caratteri Unicode. |
GetUnicode(String)
- Origine:
- IdnMapping.cs
- Origine:
- IdnMapping.cs
- Origine:
- IdnMapping.cs
Decodifica una stringa di una o più etichette del nome 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 (U+0020 to U+007E) codificate in base allo standard IDNA.
Restituisce
Equivalente Unicode della sottostringa IDNA specificata dal parametro ascii
.
Eccezioni
ascii
è null
.
ascii
non è valido in base alle proprietà AllowUnassigned 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 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
Per altre informazioni sui nomi di dominio, le etichette e i 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
Decodifica una sottostringa di una o più etichette del nome 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 (U+0020 to U+007E) codificate in base allo standard IDNA.
- index
- Int32
Offset in base zero nel parametro ascii
che specifica l'inizio della sottostringa da decodificare. L'operazione di decodificazione continua fino alla fine della stringa ascii
.
Restituisce
Equivalente Unicode della sottostringa IDNA specificata dai parametri ascii
e index
.
Eccezioni
ascii
è null
.
index
è minore di zero.
-oppure-
index
è maggiore della lunghezza di ascii
.
ascii
non è valido in base alle proprietà AllowUnassigned e UseStd3AsciiRules e allo standard IDNA.
Commenti
Per altre informazioni sui nomi di dominio, le etichette e i 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
Decodifica una sottostringa di una lunghezza specificata contenente una o più etichette del nome di dominio codificate in base allo standard IDNA in 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 (U+0020 to U+007E) codificate in base allo standard IDNA.
- index
- Int32
Offset in base zero nel parametro ascii
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 ascii
.
Restituisce
Equivalente Unicode della sottostringa IDNA specificata dai parametri ascii
, index
e 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 proprietà AllowUnassigned e UseStd3AsciiRules e allo standard IDNA.
Commenti
Per altre informazioni sui nomi di dominio, le etichette e i separatori di etichette, vedere le osservazioni per il IdnMapping.GetAscii(String, Int32, Int32) metodo.