IdnMapping.GetUnicode Yöntem

Tanım

IDNA standardına göre kodlanmış bir veya daha fazla etki alanı adı etiketinin kodunu Unicode karakter dizesine çözer.

Aşırı Yüklemeler

Name Description
GetUnicode(String)

IDNA standardına göre kodlanmış bir veya daha fazla etki alanı adı etiketi dizesinin kodunu Unicode karakter dizesine çözer.

GetUnicode(String, Int32)

IDNA standardına göre kodlanmış bir veya daha fazla etki alanı adı etiketinin alt dizesini Unicode karakter dizesine çözer.

GetUnicode(String, Int32, Int32)

IdNA standardına göre kodlanmış bir veya daha fazla etki alanı adı etiketi içeren belirtilen uzunluktaki alt dizenin kodunu Unicode karakter dizesine çözer.

GetUnicode(String)

Kaynak:
IdnMapping.cs
Kaynak:
IdnMapping.cs
Kaynak:
IdnMapping.cs
Kaynak:
IdnMapping.cs
Kaynak:
IdnMapping.cs

IDNA standardına göre kodlanmış bir veya daha fazla etki alanı adı etiketi dizesinin kodunu Unicode karakter dizesine çözer.

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

Parametreler

ascii
String

IdNA standardına göre kodlanmış US-ASCII karakter aralığındaki (U+0020 - U+007E) bir veya daha fazla etiketden oluşan kod çözme dizesi.

Döndürülenler

parametresi tarafından belirtilen IDNA alt dizesinin Unicode eşdeğeri ascii .

Özel durumlar

ascii, null'e eşittir.

asciive AllowUnassigned özelliklerine UseStd3AsciiRules ve IDNA standardına göre geçersizdir.

Örnekler

Aşağıdaki örnek, uluslararasılaştırılmış etki alanı adları dizisini Punycode'a dönüştürmek için yöntemini kullanır GetAscii(String) . Yöntemi GetUnicode(String) daha sonra Punycode etki alanı adını özgün etki alanı adına geri dönüştürür, ancak özgün etiket ayırıcılarını standart etiket ayırıcısıyla değiştirir.

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

Açıklamalar

Etki alanı adları, etiketler ve etiket ayırıcıları hakkında daha fazla bilgi için yöntemin IdnMapping.GetAscii(String, Int32, Int32) açıklamalarına bakın.

Şunlara uygulanır

GetUnicode(String, Int32)

Kaynak:
IdnMapping.cs
Kaynak:
IdnMapping.cs
Kaynak:
IdnMapping.cs
Kaynak:
IdnMapping.cs
Kaynak:
IdnMapping.cs

IDNA standardına göre kodlanmış bir veya daha fazla etki alanı adı etiketinin alt dizesini Unicode karakter dizesine çözer.

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

Parametreler

ascii
String

IdNA standardına göre kodlanmış US-ASCII karakter aralığındaki (U+0020 - U+007E) bir veya daha fazla etiketden oluşan kod çözme dizesi.

index
Int32

kodunu çözmek için alt dizenin başlangıcını belirten sıfır tabanlı uzaklık ascii . Kod çözme işlemi dizenin sonuna kadar ascii devam eder.

Döndürülenler

ve ascii parametreleri tarafından belirtilen IDNA alt dizesinin index Unicode eşdeğeri.

Özel durumlar

ascii, null'e eşittir.

index, sıfırdan küçüktür.

-veya-

index , uzunluğundan asciibüyüktür.

asciive AllowUnassigned özelliklerine UseStd3AsciiRules ve IDNA standardına göre geçersizdir.

Açıklamalar

Etki alanı adları, etiketler ve etiket ayırıcıları hakkında daha fazla bilgi için yöntemin IdnMapping.GetAscii(String, Int32, Int32) açıklamalarına bakın.

Şunlara uygulanır

GetUnicode(String, Int32, Int32)

Kaynak:
IdnMapping.cs
Kaynak:
IdnMapping.cs
Kaynak:
IdnMapping.cs
Kaynak:
IdnMapping.cs
Kaynak:
IdnMapping.cs

IdNA standardına göre kodlanmış bir veya daha fazla etki alanı adı etiketi içeren belirtilen uzunluktaki alt dizenin kodunu Unicode karakter dizesine çözer.

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

Parametreler

ascii
String

IdNA standardına göre kodlanmış US-ASCII karakter aralığındaki (U+0020 - U+007E) bir veya daha fazla etiketden oluşan kod çözme dizesi.

index
Int32

alt dizenin başlangıcını belirten sıfır tabanlı uzaklık ascii .

count
Int32

Dizede tarafından index belirtilen konumda başlayan alt dizede ascii dönüştürülecek karakter sayısı.

Döndürülenler

, asciive index parametreleri tarafından belirtilen IDNA alt dizesinin countUnicode eşdeğeri.

Özel durumlar

ascii, null'e eşittir.

index veya count sıfırdan küçüktür.

-veya-

index , uzunluğundan asciibüyüktür.

-veya-

index, eksi asciiuzunluğundan count büyüktür.

asciive AllowUnassigned özelliklerine UseStd3AsciiRules ve IDNA standardına göre geçersizdir.

Açıklamalar

Etki alanı adları, etiketler ve etiket ayırıcıları hakkında daha fazla bilgi için yöntemin IdnMapping.GetAscii(String, Int32, Int32) açıklamalarına bakın.

Şunlara uygulanır