IdnMapping.GetUnicode 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í.
Dekóduje jeden nebo více popisků názvů domén kódovaných podle standardu IDNA na řetězec znaků Unicode.
Přetížení
GetUnicode(String) |
Dekóduje řetězec jednoho nebo více popisků názvu domény kódovaných podle standardu IDNA na řetězec znaků Unicode. |
GetUnicode(String, Int32) |
Dekóduje podřetězce jednoho nebo více popisků názvu domény kódované podle standardu IDNA na řetězec znaků Unicode. |
GetUnicode(String, Int32, Int32) |
Dekóduje podřetězce zadané délky, který obsahuje jeden nebo více popisků názvů domén zakódovaných podle standardu IDNA, na řetězec znaků Unicode. |
GetUnicode(String)
- Zdroj:
- IdnMapping.cs
- Zdroj:
- IdnMapping.cs
- Zdroj:
- IdnMapping.cs
Dekóduje řetězec jednoho nebo více popisků názvu domény kódovaných podle standardu IDNA na řetězec znaků 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
Parametry
- ascii
- String
Řetězec, který se má dekódovat, který se skládá z jednoho nebo více popisků v rozsahu znaků US-ASCII (U+0020 až U+007E) zakódovaných podle standardu IDNA.
Návraty
Unicode ekvivalent podřetěžce IDNA určený parametrem ascii
.
Výjimky
ascii
je null
.
ascii
je neplatný na AllowUnassigned základě vlastností a UseStd3AsciiRules a 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. Metoda GetUnicode(String) poté 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ím oddělovačem popisků.
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
Další informace o názvech domén, popiscích a oddělovači popisků najdete v poznámkách k IdnMapping.GetAscii(String, Int32, Int32) metodě .
Platí pro
GetUnicode(String, Int32)
- Zdroj:
- IdnMapping.cs
- Zdroj:
- IdnMapping.cs
- Zdroj:
- IdnMapping.cs
Dekóduje podřetězce jednoho nebo více popisků názvu domény kódované podle standardu IDNA na řetězec znaků 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
Parametry
- ascii
- String
Řetězec, který se má dekódovat, který se skládá z jednoho nebo více popisků v rozsahu znaků US-ASCII (U+0020 až U+007E) zakódovaných podle standardu IDNA.
- index
- Int32
Posun ascii
od nuly, který určuje začátek podřetězení k dekódování. Operace dekódování pokračuje na konec ascii
řetězce.
Návraty
Ekvivalent Unicode podřetěžce IDNA určený ascii
parametry a index
.
Výjimky
ascii
je null
.
ascii
je neplatný na AllowUnassigned základě vlastností a UseStd3AsciiRules a standardu IDNA.
Poznámky
Další informace o názvech domén, popiscích a oddělovači popisků najdete v poznámkách k IdnMapping.GetAscii(String, Int32, Int32) metodě .
Platí pro
GetUnicode(String, Int32, Int32)
- Zdroj:
- IdnMapping.cs
- Zdroj:
- IdnMapping.cs
- Zdroj:
- IdnMapping.cs
Dekóduje podřetězce zadané délky, který obsahuje jeden nebo více popisků názvů domén zakódovaných podle standardu IDNA, na řetězec znaků 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
Parametry
- ascii
- String
Řetězec, který se má dekódovat, který se skládá z jednoho nebo více popisků v rozsahu znaků US-ASCII (U+0020 až U+007E) zakódovaných podle standardu IDNA.
- index
- Int32
Posun ascii
od nuly, který určuje začátek podřetězení.
- count
- Int32
Počet znaků, které se mají převést v podřetězci, který začíná na pozici určené v index
řetězci ascii
.
Návraty
Unicode ekvivalent podřetěžce IDNA určený ascii
parametry , index
a count
.
Výjimky
ascii
je null
.
index
nebo count
je menší než nula.
-nebo-
index
je větší než délka .ascii
-nebo-
index
je větší než délka minus ascii
count
.
ascii
je neplatný na AllowUnassigned základě vlastností a UseStd3AsciiRules a standardu IDNA.
Poznámky
Další informace o názvech domén, popiscích a oddělovači popisků najdete v poznámkách k IdnMapping.GetAscii(String, Int32, Int32) metodě .