IdnMapping.GetUnicode Yöntem
Tanım
Önemli
Bazı bilgiler ürünün ön sürümüyle ilgilidir ve sürüm öncesinde önemli değişiklikler yapılmış olabilir. Burada verilen bilgilerle ilgili olarak Microsoft açık veya zımni hiçbir garanti vermez.
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.
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.