Aracılığıyla paylaş


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

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 bir alt dizenin kodunu Unicode karakter dizesine çözer.

GetUnicode(String)

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 etiket içeren kod çözme dizesi.

Döndürülenler

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

Özel durumlar

ascii, null değeridir.

ascii ve özelliklerine AllowUnassignedUseStd3AsciiRules 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önteminin 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

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 etiket içeren 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 ascii sonuna kadar devam eder.

Döndürülenler

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

Özel durumlar

ascii, null değeridir.

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

-veya-

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

ascii ve özelliklerine AllowUnassignedUseStd3AsciiRules 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önteminin 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

IdNA standardına göre kodlanmış bir veya daha fazla etki alanı adı etiketi içeren belirtilen uzunluktaki bir 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 etiket içeren kod çözme dizesi.

index
Int32

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

count
Int32

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

Döndürülenler

, indexve count parametreleri tarafından belirtilen IDNA alt dizesinin asciiUnicode eşdeğeri.

Özel durumlar

ascii, null değeridir.

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

-veya-

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

-veya-

index, eksi countdeğerinden ascii büyük.

ascii ve özelliklerine AllowUnassignedUseStd3AsciiRules 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önteminin IdnMapping.GetAscii(String, Int32, Int32) açıklamalarına bakın.

Şunlara uygulanır