IdnMapping.GetAscii 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.
ABD-ASCII karakter aralığının dışındaki Unicode karakterleri içeren bir etki alanı adı etiketleri dizesini US-ASCII karakter aralığındaki görüntülenebilir Unicode karakterlerinden oluşan bir dizeye (U+0020 - U+007E) kodlar. Dize, IDNA standardına göre biçimlendirilir.
Aşırı Yüklemeler
GetAscii(String) |
Unicode karakterlerinden oluşan bir etki alanı adı etiketleri dizesini US-ASCII karakter aralığındaki görüntülenebilir Unicode karakterlerinden oluşan bir dizeye kodlar. Dize, IDNA standardına göre biçimlendirilir. |
GetAscii(String, Int32) |
US-ASCII karakter aralığının dışında Unicode karakterler içeren etki alanı adı etiketlerinin alt dizesini kodlar. Alt dize, US-ASCII karakter aralığında görüntülenebilir Unicode karakter dizesine dönüştürülür ve IDNA standardına göre biçimlendirilir. |
GetAscii(String, Int32, Int32) |
ABD-ASCII karakter aralığının dışındaki Unicode karakterleri içeren etki alanı adı etiketlerinin alt dizesinde belirtilen sayıda karakteri kodlar. Alt dize, US-ASCII karakter aralığında görüntülenebilir Unicode karakter dizesine dönüştürülür ve IDNA standardına göre biçimlendirilir. |
GetAscii(String)
- Kaynak:
- IdnMapping.cs
- Kaynak:
- IdnMapping.cs
- Kaynak:
- IdnMapping.cs
Unicode karakterlerinden oluşan bir etki alanı adı etiketleri dizesini US-ASCII karakter aralığındaki görüntülenebilir Unicode karakterlerinden oluşan bir dizeye kodlar. Dize, IDNA standardına göre biçimlendirilir.
public:
System::String ^ GetAscii(System::String ^ unicode);
public string GetAscii (string unicode);
member this.GetAscii : string -> string
Public Function GetAscii (unicode As String) As String
Parametreler
- unicode
- String
Dönüştürülecek dize; etiket ayırıcılarıyla ayrılmış bir veya daha fazla etki alanı adı etiketinden oluşur.
Döndürülenler
PARAMETRESI tarafından unicode
belirtilen dizenin eşdeğeri, US-ASCII karakter aralığında görüntülenebilir Unicode karakterlerinden (U+0020 -U+007E) oluşur ve IDNA standardına göre biçimlendirilir.
Özel durumlar
unicode
, null
değeridir.
unicode
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) . Bu, ABD-ASCII karakter aralığındaki karakterlerden oluşan kodlanmış eşdeğerdir. 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
unicode
parametresi, geçerli Unicode karakterlerinden oluşan bir veya daha fazla etiket dizesini belirtir. Etiketler, etiket ayırıcılarıyla ayrılır. unicode
parametresi bir etiket ayırıcısıyla başlayamaz, ancak içerebilir ve isteğe bağlı olarak ayırıcı ile bitebilir. Etiket ayırıcıları FULL STOP (nokta, U+002E), IDEOGRAPHIC FULL STOP (U+3002), FULLWIDTH FULL STOP (U+FF0E) ve HALFWIDTH IDEOGRAPHIC FULL STOP (U+FF61) şeklindedir. Örneğin, "www.adatum.com" etki alanı adı noktalarla ayrılmış "www", "adatum" ve "com" etiketlerinden oluşur.
Etiket aşağıdaki karakterlerden hiçbirini içeremez:
U+0001 ile U+001F ve U+007F arasında Unicode denetim karakterleri.
Özelliğin değeri AllowUnassigned ise
false
atanmamış Unicode karakterleri.ÖZELLIĞIn değeri UseStd3AsciiRules ise, ABD-ASCII karakter aralığındaki BOŞLUK (U+0020), ÜNLEM İŞARETİ (U+0021) ve ALT ÇIZGI (U+005F) karakterleri gibi standart olmayan karakterler.
true
IDNA standardının belirli bir sürümü tarafından yasaklanan karakterler. Yasaklanmış karakterler hakkında daha fazla bilgi için bkz . RFC 3454: IDNA 2003 için Uluslararası Dizelerin Hazırlanması ("stringprep") ve RFC 5982: IDNA 2008 için Uygulamalar için Unicode Kod Noktaları ve Uluslararası Etki Alanı Adları .
GetAscii yöntemi tüm etiket ayırıcılarını TAM STOP'a (nokta, U+002E) dönüştürür.
US-ASCII karakter aralığının dışında karakter içermiyorsa ve US-ASCII karakter aralığı içinde hiçbir karakter yasaklanmışsa unicode
, yöntem değişmeden döndürür unicode
.
Arayanlara Notlar
.NET Framework 4.5'te sınıfı, IdnMapping kullanılan işletim sistemine bağlı olarak IDNA standardının farklı sürümlerini destekler:
Windows 8 üzerinde çalıştırıldığında, RFC 5891: Uygulamalarda Uluslararası Etki Alanı Adları (IDNA): Protokol tarafından özetlenen IDNA standardının 2008 sürümünü destekler.
Windows işletim sisteminin önceki sürümlerinde çalıştırıldığında, RFC 3490: Uygulamalarda Etki Alanı Adlarını Uluslararası Hale Getirme (IDNA) tarafından özetlenen standardın 2003 sürümünü destekler.
Bu standartların belirli karakter kümelerini işleme yöntemindeki farklılıklar için bkz . Unicode Teknik Standart #46: IDNA Uyumluluk İşleme .
Şunlara uygulanır
GetAscii(String, Int32)
- Kaynak:
- IdnMapping.cs
- Kaynak:
- IdnMapping.cs
- Kaynak:
- IdnMapping.cs
US-ASCII karakter aralığının dışında Unicode karakterler içeren etki alanı adı etiketlerinin alt dizesini kodlar. Alt dize, US-ASCII karakter aralığında görüntülenebilir Unicode karakter dizesine dönüştürülür ve IDNA standardına göre biçimlendirilir.
public:
System::String ^ GetAscii(System::String ^ unicode, int index);
public string GetAscii (string unicode, int index);
member this.GetAscii : string * int -> string
Public Function GetAscii (unicode As String, index As Integer) As String
Parametreler
- unicode
- String
Dönüştürülecek dize; etiket ayırıcılarıyla ayrılmış bir veya daha fazla etki alanı adı etiketinden oluşur.
- index
- Int32
dönüştürülecek alt dizenin başlangıcını belirten içine sıfır tabanlı uzaklık unicode
. Dönüştürme işlemi dizenin sonuna kadar unicode
devam eder.
Döndürülenler
US-ASCII karakter aralığındaki (index
U+0020 - U+007E) görüntülenebilir Unicode karakterlerinden oluşan ve parametreleri tarafından unicode
belirtilen alt dizenin eşdeğeridir ve IDNA standardına göre biçimlendirilir.
Özel durumlar
unicode
, null
değeridir.
unicode
ve özelliklerine AllowUnassignedUseStd3AsciiRules ve IDNA standardına göre geçersizdir.
Açıklamalar
unicode
ve index
parametreleri, geçerli Unicode karakterlerinden oluşan bir veya daha fazla etiket içeren bir alt dize tanımlar. Etiketler, etiket ayırıcılarıyla ayrılır. Alt dizenin ilk karakteri bir etiket ayırıcısıyla başlayamaz, ancak içerebilir ve isteğe bağlı olarak ayırıcı ile bitebilir. Etiket ayırıcıları FULL STOP (nokta, U+002E), IDEOGRAPHIC FULL STOP (U+3002), FULLWIDTH FULL STOP (U+FF0E) ve HALFWIDTH IDEOGRAPHIC FULL STOP (U+FF61) şeklindedir. Örneğin, "www.adatum.com" etki alanı adı noktalarla ayrılmış "www", "adatum" ve "com" etiketlerinden oluşur.
Etiket aşağıdaki karakterlerden hiçbirini içeremez:
U+0001 ile U+001F ve U+007F arasında Unicode denetim karakterleri.
Özelliğin değerine AllowUnassigned bağlı olarak atanmamış Unicode karakterler.
ÖZELLIĞIn değerine UseStd3AsciiRules bağlı olarak, ABD-ASCII karakter aralığındaki BOŞLUK (U+0020), ÜNLEM İŞARETİ (U+0021) ve ALT ÇIZGI (U+005F) karakterleri gibi standart olmayan karakterler.
IDNA standardının belirli bir sürümü tarafından yasaklanan karakterler. Yasaklanmış karakterler hakkında daha fazla bilgi için bkz . RFC 3454: IDNA 2003 için Uluslararası Dizelerin Hazırlanması ("stringprep") ve RFC 5982: IDNA 2008 için Uygulamalar için Unicode Kod Noktaları ve Uluslararası Etki Alanı Adları .
GetAscii yöntemi tüm etiket ayırıcılarını TAM STOP'a (nokta, U+002E) dönüştürür.
US-ASCII karakter aralığının dışında karakter içermiyorsa ve US-ASCII karakter aralığı içinde hiçbir karakter yasaklanmışsa unicode
, yöntem değişmeden döndürür unicode
.
Arayanlara Notlar
.NET Framework 4.5'te sınıfı, IdnMapping kullanılan işletim sistemine bağlı olarak IDNA standardının farklı sürümlerini destekler:
Windows 8 üzerinde çalıştırıldığında, RFC 5891: Uygulamalarda Uluslararası Etki Alanı Adları (IDNA): Protokol tarafından özetlenen IDNA standardının 2008 sürümünü destekler.
Windows işletim sisteminin önceki sürümlerinde çalıştırıldığında, RFC 3490: Uygulamalarda Etki Alanı Adlarını Uluslararası Hale Getirme (IDNA) tarafından özetlenen standardın 2003 sürümünü destekler.
Bu standartların belirli karakter kümelerini işleme yöntemindeki farklılıklar için bkz . Unicode Teknik Standart #46: IDNA Uyumluluk İşleme .
Şunlara uygulanır
GetAscii(String, Int32, Int32)
- Kaynak:
- IdnMapping.cs
- Kaynak:
- IdnMapping.cs
- Kaynak:
- IdnMapping.cs
ABD-ASCII karakter aralığının dışında Unicode karakterler içeren etki alanı adı etiketlerinin alt dizesinde belirtilen sayıda karakteri kodlar. Alt dize, US-ASCII karakter aralığında görüntülenebilir Unicode karakter dizesine dönüştürülür ve IDNA standardına göre biçimlendirilir.
public:
System::String ^ GetAscii(System::String ^ unicode, int index, int count);
public string GetAscii (string unicode, int index, int count);
member this.GetAscii : string * int * int -> string
Public Function GetAscii (unicode As String, index As Integer, count As Integer) As String
Parametreler
- unicode
- String
Dönüştürülecek dize; etiket ayırıcılarıyla ayrılmış bir veya daha fazla etki alanı adı etiketinden oluşur.
- index
- Int32
alt dizenin başlangıcını belirten içine unicode
sıfır tabanlı uzaklık.
- count
- Int32
Dizede tarafından belirtilen index
konumda başlayan alt dizede unicode
dönüştürülecek karakter sayısı.
Döndürülenler
ABD-ASCII karakter aralığındaki görüntülenebilir Unicode karakterlerinden (U+0020 ile U+007E) oluşan ve count
IDNA standardına göre biçimlendirilmiş, , index
ve parametreleri tarafından unicode
belirtilen alt dizenin eşdeğeri.
Özel durumlar
unicode
, null
değeridir.
index
veya count
sıfırdan küçüktür.
-veya-
index
, uzunluğundan unicode
büyüktür.
-veya-
index
, eksi count
değerinden unicode
büyük.
unicode
ve özelliklerine AllowUnassignedUseStd3AsciiRules ve IDNA standardına göre geçersizdir.
Örnekler
Aşağıdaki örnek, uluslararası bir etki alanı adını IDNA standardına uygun bir etki alanı adına dönüştürmek için yöntemini kullanır GetAscii(String, Int32, Int32) . Yöntemi GetUnicode(String, Int32, Int32) daha sonra standartlaştırılmış 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.
// This example demonstrates the GetAscii and GetUnicode methods.
// For sake of illustration, this example uses the most complex
// form of those methods, not the most convenient.
using System;
using System.Globalization;
class Sample
{
public static void Main()
{
/*
Define a domain name consisting of the labels: GREEK SMALL LETTER
PI (U+03C0); IDEOGRAPHIC FULL STOP (U+3002); GREEK SMALL LETTER
THETA (U+03B8); FULLWIDTH FULL STOP (U+FF0E); and "com".
*/
string name = "\u03C0\u3002\u03B8\uFF0Ecom";
string international;
string nonInternational;
string msg1 = "the original non-internationalized \ndomain name:";
string msg2 = "Allow unassigned characters?: {0}";
string msg3 = "Use non-internationalized rules?: {0}";
string msg4 = "Convert the non-internationalized domain name to international format...";
string msg5 = "Display the encoded domain name:\n\"{0}\"";
string msg6 = "the encoded domain name:";
string msg7 = "Convert the internationalized domain name to non-international format...";
string msg8 = "the reconstituted non-internationalized \ndomain name:";
string msg9 = "Visually compare the code points of the reconstituted string to the " +
"original.\n" +
"Note that the reconstituted string contains standard label " +
"separators (U+002e).";
// ----------------------------------------------------------------------------
CodePoints(name, msg1);
// ----------------------------------------------------------------------------
IdnMapping idn = new IdnMapping();
Console.WriteLine(msg2, idn.AllowUnassigned);
Console.WriteLine(msg3, idn.UseStd3AsciiRules);
Console.WriteLine();
// ----------------------------------------------------------------------------
Console.WriteLine(msg4);
international = idn.GetAscii(name, 0, name.Length);
Console.WriteLine(msg5, international);
Console.WriteLine();
CodePoints(international, msg6);
// ----------------------------------------------------------------------------
Console.WriteLine(msg7);
nonInternational = idn.GetUnicode(international, 0, international.Length);
CodePoints(nonInternational, msg8);
Console.WriteLine(msg9);
}
// ----------------------------------------------------------------------------
static void CodePoints(string value, string title)
{
Console.WriteLine("Display the Unicode code points of {0}", title);
foreach (char c in value)
{
Console.Write("{0:x4} ", Convert.ToInt32(c));
}
Console.WriteLine();
Console.WriteLine();
}
}
/*
This code example produces the following results:
Display the Unicode code points of the original non-internationalized
domain name:
03c0 3002 03b8 ff0e 0063 006f 006d
Allow unassigned characters?: False
Use non-internationalized rules?: False
Convert the non-internationalized domain name to international format...
Display the encoded domain name:
"xn--1xa.xn--txa.com"
Display the Unicode code points of the encoded domain name:
0078 006e 002d 002d 0031 0078 0061 002e 0078 006e 002d 002d 0074 0078 0061 002e 0063 006f
006d
Convert the internationalized domain name to non-international format...
Display the Unicode code points of the reconstituted non-internationalized
domain name:
03c0 002e 03b8 002e 0063 006f 006d
Visually compare the code points of the reconstituted string to the original.
Note that the reconstituted string contains standard label separators (U+002e).
*/
' This example demonstrates the GetAscii and GetUnicode methods.
' For sake of illustration, this example uses the most complex
' form of those methods, not the most convenient.
Imports System.Globalization
Class Sample
Public Shared Sub Main()
' Define a domain name consisting of the labels: GREEK SMALL LETTER
' PI (U+03C0); IDEOGRAPHIC FULL STOP (U+3002); GREEK SMALL LETTER
' THETA (U+03B8); FULLWIDTH FULL STOP (U+FF0E); and "com".
Dim name As String = "π。θ.com"
Dim international As String
Dim nonInternational As String
Dim msg1 As String = "the original non-internationalized " & vbCrLf & "domain name:"
Dim msg2 As String = "Allow unassigned characters?: {0}"
Dim msg3 As String = "Use non-internationalized rules?: {0}"
Dim msg4 As String = "Convert the non-internationalized domain name to international format..."
Dim msg5 As String = "Display the encoded domain name:" & vbCrLf & """{0}"""
Dim msg6 As String = "the encoded domain name:"
Dim msg7 As String = "Convert the internationalized domain name to non-international format..."
Dim msg8 As String = "the reconstituted non-internationalized " & vbCrLf & "domain name:"
Dim msg9 As String = "Visually compare the code points of the reconstituted string to the " & _
"original." & vbCrLf & _
"Note that the reconstituted string contains standard label " & _
"separators (U+002e)."
' ----------------------------------------------------------------------------
CodePoints(name, msg1)
' ----------------------------------------------------------------------------
Dim idn As New IdnMapping()
Console.WriteLine(msg2, idn.AllowUnassigned)
Console.WriteLine(msg3, idn.UseStd3AsciiRules)
Console.WriteLine()
' ----------------------------------------------------------------------------
Console.WriteLine(msg4)
international = idn.GetAscii(name, 0, name.Length)
Console.WriteLine(msg5, international)
Console.WriteLine()
CodePoints(international, msg6)
' ----------------------------------------------------------------------------
Console.WriteLine(msg7)
nonInternational = idn.GetUnicode(international, 0, international.Length)
CodePoints(nonInternational, msg8)
Console.WriteLine(msg9)
End Sub
' ----------------------------------------------------------------------------
Shared Sub CodePoints(ByVal value As String, ByVal title As String)
Console.WriteLine("Display the Unicode code points of {0}", title)
Dim c As Char
For Each c In value
Console.Write("{0:x4} ", Convert.ToInt32(c))
Next c
Console.WriteLine()
Console.WriteLine()
End Sub
End Class
'
'This code example produces the following results:
'
'Display the Unicode code points of the original non-internationalized
'domain name:
'03c0 3002 03b8 ff0e 0063 006f 006d
'
'Allow unassigned characters?: False
'Use non-internationalized rules?: False
'
'Convert the non-internationalized domain name to international format...
'Display the encoded domain name:
'"xn--1xa.xn--txa.com"
'
'Display the Unicode code points of the encoded domain name:
'0078 006e 002d 002d 0031 0078 0061 002e 0078 006e 002d 002d 0074 0078 0061 002e 0063 006f
'006d
'
'Convert the internationalized domain name to non-international format...
'Display the Unicode code points of the reconstituted non-internationalized
'domain name:
'03c0 002e 03b8 002e 0063 006f 006d
'
'Visually compare the code points of the reconstituted string to the original.
'Note that the reconstituted string contains standard label separators (U+002e).
'
Açıklamalar
Unicode
, index
ve count
parametreleri, geçerli Unicode karakterlerinden oluşan bir veya daha fazla etiket içeren bir alt dize tanımlar. Etiketler, etiket ayırıcılarıyla ayrılır. Alt dizenin ilk karakteri bir etiket ayırıcısıyla başlayamaz, ancak içerebilir ve isteğe bağlı olarak ayırıcı ile bitebilir. Etiket ayırıcıları FULL STOP (nokta, U+002E), IDEOGRAPHIC FULL STOP (U+3002), FULLWIDTH FULL STOP (U+FF0E) ve HALFWIDTH IDEOGRAPHIC FULL STOP (U+FF61) şeklindedir. Örneğin, "www.adatum.com" etki alanı adı noktalarla ayrılmış "www", "adatum" ve "com" etiketlerinden oluşur.
Etiket aşağıdaki karakterlerden hiçbirini içeremez:
U+0001 ile U+001F ve U+007F arasında Unicode denetim karakterleri.
Özelliğin değerine AllowUnassigned bağlı olarak atanmamış Unicode karakterler.
ÖZELLIĞIn değerine UseStd3AsciiRules bağlı olarak, ABD-ASCII karakter aralığındaki BOŞLUK (U+0020), ÜNLEM İŞARETİ (U+0021) ve ALT ÇIZGI (U+005F) karakterleri gibi standart olmayan karakterler.
IDNA standardının belirli bir sürümü tarafından yasaklanan karakterler. Yasaklanmış karakterler hakkında daha fazla bilgi için bkz . RFC 3454: IDNA 2003 için Uluslararası Dizelerin Hazırlanması ("stringprep") ve RFC 5982: IDNA 2008 için Uygulamalar için Unicode Kod Noktaları ve Uluslararası Etki Alanı Adları .
GetAscii yöntemi tüm etiket ayırıcılarını TAM STOP'a (nokta, U+002E) dönüştürür. Alt dize ABD-ASCII karakter aralığının dışında karakter içermiyorsa ve US-ASCII karakter aralığındaki hiçbir karakter yasaklanmadıysa, yöntem alt dizeyi değiştirmeden döndürür.
Arayanlara Notlar
.NET Framework 4.5'te sınıfı, IdnMapping kullanılan işletim sistemine bağlı olarak IDNA standardının farklı sürümlerini destekler:
Windows 8 üzerinde çalıştırıldığında, RFC 5891: Uygulamalarda Uluslararası Etki Alanı Adları (IDNA): Protokol tarafından özetlenen IDNA standardının 2008 sürümünü destekler.
Windows işletim sisteminin önceki sürümlerinde çalıştırıldığında, RFC 3490: Uygulamalarda Etki Alanı Adlarını Uluslararası Hale Getirme (IDNA) tarafından özetlenen standardın 2003 sürümünü destekler.
Bu standartların belirli karakter kümelerini işleme yöntemindeki farklılıklar için bkz . Unicode Teknik Standart #46: IDNA Uyumluluk İşleme .