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
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.
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
, index
ve count
parametreleri tarafından belirtilen IDNA alt dizesinin ascii
Unicode eşdeğeri.
Özel durumlar
ascii
, null
değeridir.
index
veya count
sıfırdan küçüktür.
-veya-
index
, uzunluğundan ascii
büyüktür.
-veya-
index
, eksi count
değ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.