Freigeben über


IdnMapping.GetUnicode Methode

Definition

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.

Gilt für: