IdnMapping.GetUnicode Methode
Definition
Wichtig
Einige Informationen beziehen sich auf Vorabversionen, die vor dem Release ggf. grundlegend überarbeitet werden. Microsoft übernimmt hinsichtlich der hier bereitgestellten Informationen keine Gewährleistungen, seien sie ausdrücklich oder konkludent.
Decodiert eine oder mehrere Domänennamensbezeichnungen, die entsprechend des IDNA-Standards codiert sind, in eine Zeichenfolge aus Unicode-Zeichen.
Überlädt
GetUnicode(String) |
Decodiert eine Zeichenfolge aus einer oder mehreren Domänennamensbezeichnungen, die entsprechend des IDNA-Standards codiert sind, in eine Zeichenfolge aus Unicode-Zeichen. |
GetUnicode(String, Int32) |
Decodiert eine Teilzeichenfolge aus einer oder mehreren Domänennamensbezeichnungen, die entsprechend des IDNA-Standards codiert sind, in eine Zeichenfolge aus Unicode-Zeichen. |
GetUnicode(String, Int32, Int32) |
Decodiert eine Teilzeichenfolge einer angegebenen Länge, die eine oder mehrere Domänennamensbezeichnungen enthält, die entsprechend des IDNA-Standards codiert sind, in eine Zeichenfolge aus Unicode-Zeichen. |
GetUnicode(String)
- Quelle:
- IdnMapping.cs
- Quelle:
- IdnMapping.cs
- Quelle:
- IdnMapping.cs
Decodiert eine Zeichenfolge aus einer oder mehreren Domänennamensbezeichnungen, die entsprechend des IDNA-Standards codiert sind, in eine Zeichenfolge aus Unicode-Zeichen.
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
Parameter
- ascii
- String
Die zu decodierende Zeichenfolge, die aus einem oder mehreren Bezeichnungen im US-ASCII-Zeichenbereich (U+0020 bis U+007E) besteht, codiert nach dem IDNA-Standard.
Gibt zurück
Die Unicode-Entsprechung der durch den ascii
-Parameter angegebenen IDNA-Teilzeichenfolge.
Ausnahmen
ascii
ist null
.
ascii
ist auf der Grundlage der AllowUnassigned-Eigenschaft, der UseStd3AsciiRules-Eigenschaft und dem IDNA-Standard ungültig.
Beispiele
Im folgenden Beispiel wird die GetAscii(String) -Methode verwendet, um ein Array von internationalisierten Domänennamen in Punycode zu konvertieren. Die GetUnicode(String) -Methode konvertiert dann den Punycode-Domänennamen wieder in den ursprünglichen Domänennamen, ersetzt jedoch die ursprünglichen Bezeichnungstrennzeichen durch das Standardbezeichnungstrennzeichen.
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
Hinweise
Weitere Informationen zu Domänennamen, Bezeichnungen und Bezeichnungstrennzeichen finden Sie in den Hinweisen zur IdnMapping.GetAscii(String, Int32, Int32) -Methode.
Gilt für:
GetUnicode(String, Int32)
- Quelle:
- IdnMapping.cs
- Quelle:
- IdnMapping.cs
- Quelle:
- IdnMapping.cs
Decodiert eine Teilzeichenfolge aus einer oder mehreren Domänennamensbezeichnungen, die entsprechend des IDNA-Standards codiert sind, in eine Zeichenfolge aus Unicode-Zeichen.
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
Parameter
- ascii
- String
Die zu decodierende Zeichenfolge, die aus einem oder mehreren Bezeichnungen im US-ASCII-Zeichenbereich (U+0020 bis U+007E) besteht, codiert nach dem IDNA-Standard.
- index
- Int32
Ein nullbasierter Offset in ascii
, der den Anfang der zu decodierenden Teilzeichenfolge angibt. Der Decodierungsvorgang wird bis zum Ende der ascii
-Zeichenfolge fortgesetzt.
Gibt zurück
Die Unicode-Entsprechung der durch den ascii
-Parameter und den index
-Parameter angegebenen IDNA-Teilzeichenfolge.
Ausnahmen
ascii
ist null
.
index
ist kleiner als Null.
- oder -
index
ist größer als die Länge von ascii
.
ascii
ist auf der Grundlage der AllowUnassigned-Eigenschaft, der UseStd3AsciiRules-Eigenschaft und dem IDNA-Standard ungültig.
Hinweise
Weitere Informationen zu Domänennamen, Bezeichnungen und Bezeichnungstrennzeichen finden Sie in den Hinweisen zur IdnMapping.GetAscii(String, Int32, Int32) -Methode.
Gilt für:
GetUnicode(String, Int32, Int32)
- Quelle:
- IdnMapping.cs
- Quelle:
- IdnMapping.cs
- Quelle:
- IdnMapping.cs
Decodiert eine Teilzeichenfolge einer angegebenen Länge, die eine oder mehrere Domänennamensbezeichnungen enthält, die entsprechend des IDNA-Standards codiert sind, in eine Zeichenfolge aus Unicode-Zeichen.
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
Parameter
- ascii
- String
Die zu decodierende Zeichenfolge, die aus einem oder mehreren Bezeichnungen im US-ASCII-Zeichenbereich (U+0020 bis U+007E) besteht, codiert nach dem IDNA-Standard.
- index
- Int32
Ein nullbasierter Offset in ascii
, der den Anfang der Teilzeichenfolge angibt.
- count
- Int32
Die Anzahl von zu konvertierenden Zeichen in der Teilzeichenfolge, die an der durch index
in der ascii
-Zeichenfolge angegebenen Position beginnt.
Gibt zurück
Die Unicode-Entsprechung der durch den ascii
-Parameter, den index
-Parameter und den count
-Parameter angegebenen IDNA-Teilzeichenfolge.
Ausnahmen
ascii
ist null
.
index
oder count
ist kleiner als 0.
- oder -
index
ist größer als die Länge von ascii
.
- oder -
index
ist größer als die Länge von ascii
minus count
.
ascii
ist auf der Grundlage der AllowUnassigned-Eigenschaft, der UseStd3AsciiRules-Eigenschaft und dem IDNA-Standard ungültig.
Hinweise
Weitere Informationen zu Domänennamen, Bezeichnungen und Bezeichnungstrennzeichen finden Sie in den Hinweisen zur IdnMapping.GetAscii(String, Int32, Int32) -Methode.