IdnMapping.GetUnicode Metode
Definisi
Penting
Beberapa informasi terkait produk prarilis yang dapat diubah secara signifikan sebelum dirilis. Microsoft tidak memberikan jaminan, tersirat maupun tersurat, sehubungan dengan informasi yang diberikan di sini.
Mendekode satu atau beberapa label nama domain yang dikodekan sesuai dengan standar IDNA ke string karakter Unicode.
Overload
GetUnicode(String) |
Mendekode string satu atau beberapa label nama domain, dikodekan sesuai dengan standar IDNA, ke string karakter Unicode. |
GetUnicode(String, Int32) |
Mendekode substring dari satu atau beberapa label nama domain, yang dikodekan sesuai dengan standar IDNA, ke string karakter Unicode. |
GetUnicode(String, Int32, Int32) |
Mendekode substring dengan panjang tertentu yang berisi satu atau beberapa label nama domain, dikodekan sesuai dengan standar IDNA, ke string karakter Unicode. |
GetUnicode(String)
- Sumber:
- IdnMapping.cs
- Sumber:
- IdnMapping.cs
- Sumber:
- IdnMapping.cs
Mendekode string satu atau beberapa label nama domain, dikodekan sesuai dengan standar IDNA, ke string karakter Unicode.
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
String yang akan didekodekan, yang terdiri dari satu atau beberapa label dalam rentang karakter AS-ASCII (U+0020 hingga U+007E) yang dikodekan sesuai dengan standar IDNA.
Mengembalikan
Unicode yang setara dengan substring IDNA yang ditentukan oleh ascii
parameter .
Pengecualian
ascii
adalah null
.
ascii
tidak valid berdasarkan AllowUnassigned properti dan UseStd3AsciiRules , dan standar IDNA.
Contoh
Contoh berikut menggunakan GetAscii(String) metode untuk mengonversi array nama domain internasional ke Punycode. Metode ini GetUnicode(String) kemudian mengonversi nama domain Punycode kembali ke nama domain asli, tetapi mengganti pemisah label asli dengan pemisah label standar.
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
Keterangan
Untuk informasi selengkapnya tentang nama domain, label, dan pemisah label, lihat keterangan untuk metode tersebut IdnMapping.GetAscii(String, Int32, Int32) .
Berlaku untuk
GetUnicode(String, Int32)
- Sumber:
- IdnMapping.cs
- Sumber:
- IdnMapping.cs
- Sumber:
- IdnMapping.cs
Mendekode substring dari satu atau beberapa label nama domain, yang dikodekan sesuai dengan standar IDNA, ke string karakter Unicode.
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
String yang akan didekodekan, yang terdiri dari satu atau beberapa label dalam rentang karakter AS-ASCII (U+0020 hingga U+007E) yang dikodekan sesuai dengan standar IDNA.
- index
- Int32
Offset berbasis nol ke dalam ascii
yang menentukan awal substring untuk didekode. Operasi pendekodean berlanjut ke akhir ascii
string.
Mengembalikan
Unicode yang setara dengan substring IDNA yang ditentukan oleh ascii
parameter dan index
.
Pengecualian
ascii
adalah null
.
ascii
tidak valid berdasarkan AllowUnassigned properti dan UseStd3AsciiRules , dan standar IDNA.
Keterangan
Untuk informasi selengkapnya tentang nama domain, label, dan pemisah label, lihat keterangan untuk metode tersebut IdnMapping.GetAscii(String, Int32, Int32) .
Berlaku untuk
GetUnicode(String, Int32, Int32)
- Sumber:
- IdnMapping.cs
- Sumber:
- IdnMapping.cs
- Sumber:
- IdnMapping.cs
Mendekode substring dengan panjang tertentu yang berisi satu atau beberapa label nama domain, dikodekan sesuai dengan standar IDNA, ke string karakter Unicode.
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
String yang akan didekodekan, yang terdiri dari satu atau beberapa label dalam rentang karakter AS-ASCII (U+0020 hingga U+007E) yang dikodekan sesuai dengan standar IDNA.
- index
- Int32
Offset berbasis nol ke dalam ascii
yang menentukan awal substring.
- count
- Int32
Jumlah karakter yang akan dikonversi dalam substring yang dimulai pada posisi yang ditentukan oleh index
dalam ascii
string.
Mengembalikan
Unicode yang setara dengan substring IDNA yang ditentukan oleh ascii
parameter , index
, dan count
.
Pengecualian
ascii
adalah null
.
index
atau count
kurang dari nol.
-atau-
index
lebih besar dari panjang ascii
.
-atau-
index
lebih besar dari panjang ascii
minus count
.
ascii
tidak valid berdasarkan AllowUnassigned properti dan UseStd3AsciiRules , dan standar IDNA.
Keterangan
Untuk informasi selengkapnya tentang nama domain, label, dan pemisah label, lihat keterangan untuk metode tersebut IdnMapping.GetAscii(String, Int32, Int32) .