IdnMapping.GetAscii 메서드
정의
중요
일부 정보는 릴리스되기 전에 상당 부분 수정될 수 있는 시험판 제품과 관련이 있습니다. Microsoft는 여기에 제공된 정보에 대해 어떠한 명시적이거나 묵시적인 보증도 하지 않습니다.
US-ASCII 문자 범위 외부의 유니코드 문자를 포함하는 도메인 이름 레이블의 문자열을 US-ASCII 문자 범위(U+0020 ~ U+007E)에 있는 표시 가능한 유니코드 문자의 문자열로 인코딩합니다. 문자열은 IDNA 표준에 따라 형식이 지정됩니다.
오버로드
GetAscii(String) |
유니코드 문자로 구성된 도메인 이름 레이블 문자열을 US-ASCII 문자 범위에 있는 표시 가능한 유니코드 문자의 문자열로 인코딩합니다. 문자열은 IDNA 표준에 따라 형식이 지정됩니다. |
GetAscii(String, Int32) |
US-ASCII 문자 범위 외부의 유니코드 문자를 포함하는 도메인 이름 레이블의 부분 문자열을 인코딩합니다. 하위 문자열은 US-ASCII 문자 범위의 표시 가능한 유니코드 문자열로 변환되고 IDNA 표준에 따라 형식이 지정됩니다. |
GetAscii(String, Int32, Int32) |
US-ASCII 문자 범위를 벗어나는 유니코드 문자를 포함하는 도메인 이름 레이블의 부분 문자열에 지정된 수의 문자를 인코딩합니다. 하위 문자열은 US-ASCII 문자 범위의 표시 가능한 유니코드 문자열로 변환되고 IDNA 표준에 따라 형식이 지정됩니다. |
GetAscii(String)
- Source:
- IdnMapping.cs
- Source:
- IdnMapping.cs
- Source:
- IdnMapping.cs
유니코드 문자로 구성된 도메인 이름 레이블 문자열을 US-ASCII 문자 범위에 있는 표시 가능한 유니코드 문자의 문자열로 인코딩합니다. 문자열은 IDNA 표준에 따라 형식이 지정됩니다.
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
매개 변수
- unicode
- String
변환할 문자열입니다. 레이블 구분 기호로 구분된 하나 이상의 도메인 이름으로 구성되어 있어야 합니다.
반환
unicode
매개 변수로 지정된 문자열에 해당하며, US-ASCII 문자 범위(U+0020 ~ U+007E)의 표시 가능한 유니코드 문자로 구성되고, IDNA 표준에 따라 형식이 지정된 문자열입니다.
예외
unicode
이(가) null
인 경우
unicode
가 AllowUnassigned 및 UseStd3AsciiRules 속성과 IDNA 표준에 맞지 않는 경우
예제
다음 예제에서는 메서드를 사용하여 GetAscii(String) 미국-ASCII 문자 범위의 문자로 구성된 인코딩된 동일한 도메인 이름 배열을 Punycode로 변환합니다. 그런 다음, 메서드는 GetUnicode(String) Punycode 도메인 이름을 원래 도메인 이름으로 다시 변환하지만 원래 레이블 구분 기호를 표준 레이블 구분 기호로 바꿉니다.
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
설명
매개 변수는 unicode
유효한 유니코드 문자로 구성된 하나 이상의 레이블 문자열을 지정합니다. 레이블은 레이블 구분 기호로 구분됩니다. 매개 변수는 unicode
레이블 구분 기호로 시작할 수 없지만 를 포함할 수 있으며 필요에 따라 구분 기호로 끝날 수 있습니다. 레이블 구분 기호는 FULL STOP(period, U+002E), IDEOGRAPHIC FULL STOP(U+3002), FULLWIDTH FULL STOP(U+FF0E) 및 HALFWIDTH IDEOGRAPHIC FULL STOP(U+FF61)입니다. 예를 들어 도메인 이름 "www.adatum.com"은 마침표로 구분된 레이블 "www", "adatum" 및 "com"으로 구성됩니다.
레이블에는 다음 문자가 포함될 수 없습니다.
U+0001에서 U+001F 및 U+007F까지의 유니코드 제어 문자입니다.
속성 값 AllowUnassigned 이 인 경우 할당되지 않은 유니코드 문자입니다
false
.속성 값이 인 경우 SPACE(U+0020), EXCLAMATION MARK(U+0021) 및 LOW LINE(U+005F) 문자와 같은 US-ASCII 문자 범위의 UseStd3AsciiRules 비표준 문자입니다
true
.IDNA 표준의 특정 버전에서 금지된 문자입니다. 금지 된 문자에 대 한 자세한 내용은 참조 하세요. RFC 3454: 준비의 다국어 문자열 ("stringprep") IDNA 2003 및 RFC 5982: The 유니코드 코드 포인트 및에 대 한 다국어 도메인 이름 애플리케이션 IDNA 2008에 대 한 합니다.
메서드는 GetAscii 모든 레이블 구분 기호를 FULL STOP(period, U+002E)으로 변환합니다.
US-ASCII 문자 범위를 벗어나는 문자가 없고 US-ASCII 문자 범위 내의 문자가 금지되지 않는 경우 unicode
메서드는 변경되지 않은 문자를 반환 unicode
합니다.
호출자 참고
.NET Framework 4.5에서 클래스는 IdnMapping 사용 중인 운영 체제에 따라 다른 버전의 IDNA 표준을 지원합니다.
Windows 8 실행하면 RFC 5891: IDNA(Internationalized Domain Names in Applications): Protocol에 설명된 2008 버전의 IDNA 표준을 지원합니다.
이전 버전의 Windows 운영 체제를 실행 하는 경우에 설명 된 표준의 2003 버전 지원 RFC 3490: 애플리케이션 (IDNA)에서 도메인 이름을 국제화합니다.
이러한 표준이 특정 문자 집합을 처리하는 방식의 차이는 유니코드 기술 표준 #46: IDNA 호환성 처리를 참조하세요.
적용 대상
GetAscii(String, Int32)
- Source:
- IdnMapping.cs
- Source:
- IdnMapping.cs
- Source:
- IdnMapping.cs
US-ASCII 문자 범위 외부의 유니코드 문자를 포함하는 도메인 이름 레이블의 부분 문자열을 인코딩합니다. 하위 문자열은 US-ASCII 문자 범위의 표시 가능한 유니코드 문자열로 변환되고 IDNA 표준에 따라 형식이 지정됩니다.
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
매개 변수
- unicode
- String
변환할 문자열입니다. 레이블 구분 기호로 구분된 하나 이상의 도메인 이름으로 구성되어 있어야 합니다.
- index
- Int32
0부터 시작하는 오프셋으로, unicode
에서 변환할 부분 문자열의 시작을 지정합니다. 변환 작업은 unicode
문자열의 끝까지 수행됩니다.
반환
unicode
및 index
매개 변수로 지정된 부분 문자열에 해당하며, US-ASCII 문자 범위(U+0020 ~ U+007E)의 표시 가능한 유니코드 문자로 구성되고, IDNA 표준에 따라 형식이 지정된 문자열입니다.
예외
unicode
은 null
입니다.
unicode
가 AllowUnassigned 및 UseStd3AsciiRules 속성과 IDNA 표준에 맞지 않는 경우
설명
및 index
매개 변수는 unicode
유효한 유니코드 문자로 구성된 하나 이상의 레이블을 사용하여 부분 문자열을 정의합니다. 레이블은 레이블 구분 기호로 구분됩니다. 부분 문자열의 첫 번째 문자는 레이블 구분 기호로 시작할 수 없지만 포함할 수 있으며 필요에 따라 구분 기호로 끝날 수 있습니다. 레이블 구분 기호는 FULL STOP(period, U+002E), IDEOGRAPHIC FULL STOP(U+3002), FULLWIDTH FULL STOP(U+FF0E) 및 HALFWIDTH IDEOGRAPHIC FULL STOP(U+FF61)입니다. 예를 들어 도메인 이름 "www.adatum.com"은 마침표로 구분된 레이블 "www", "adatum" 및 "com"으로 구성됩니다.
레이블에는 다음 문자가 포함될 수 없습니다.
U+0001에서 U+001F 및 U+007F까지의 유니코드 제어 문자입니다.
속성 값에 따라 할당되지 않은 유니코드 문자입니다 AllowUnassigned .
속성 값에 따라 SPACE(U+0020), EXCLAMATION MARK(U+0021) 및 LOW LINE(U+005F) 문자와 같은 US-ASCII 문자 범위의 UseStd3AsciiRules 비표준 문자입니다.
IDNA 표준의 특정 버전에서 금지된 문자입니다. 금지 된 문자에 대 한 자세한 내용은 참조 하세요. RFC 3454: 준비의 다국어 문자열 ("stringprep") IDNA 2003 및 RFC 5982: The 유니코드 코드 포인트 및에 대 한 다국어 도메인 이름 애플리케이션 IDNA 2008에 대 한 합니다.
메서드는 GetAscii 모든 레이블 구분 기호를 FULL STOP(period, U+002E)으로 변환합니다.
US-ASCII 문자 범위를 벗어나는 문자가 없고 US-ASCII 문자 범위 내의 문자가 금지되지 않는 경우 unicode
메서드는 변경되지 않은 문자를 반환 unicode
합니다.
호출자 참고
.NET Framework 4.5에서 클래스는 IdnMapping 사용 중인 운영 체제에 따라 다른 버전의 IDNA 표준을 지원합니다.
Windows 8 실행하면 RFC 5891: IDNA(Internationalized Domain Names in Applications): Protocol에 설명된 2008 버전의 IDNA 표준을 지원합니다.
이전 버전의 Windows 운영 체제를 실행 하는 경우에 설명 된 표준의 2003 버전 지원 RFC 3490: 애플리케이션 (IDNA)에서 도메인 이름을 국제화합니다.
이러한 표준이 특정 문자 집합을 처리하는 방식의 차이는 유니코드 기술 표준 #46: IDNA 호환성 처리를 참조하세요.
적용 대상
GetAscii(String, Int32, Int32)
- Source:
- IdnMapping.cs
- Source:
- IdnMapping.cs
- Source:
- IdnMapping.cs
US-ASCII 문자 범위를 벗어나는 유니코드 문자를 포함하는 도메인 이름 레이블의 부분 문자열에 지정된 수의 문자를 인코딩합니다. 하위 문자열은 US-ASCII 문자 범위의 표시 가능한 유니코드 문자열로 변환되고 IDNA 표준에 따라 형식이 지정됩니다.
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
매개 변수
- unicode
- String
변환할 문자열입니다. 레이블 구분 기호로 구분된 하나 이상의 도메인 이름으로 구성되어 있어야 합니다.
- index
- Int32
0부터 시작하는 오프셋으로, unicode
에서 부분 문자열의 시작을 지정합니다.
- count
- Int32
index
문자열의 unicode
가 지정한 위치에서 시작하는 하위 문자열 중 변환할 문자 수입니다.
반환
unicode
, index
및 count
매개 변수로 지정된 부분 문자열에 해당하며, US-ASCII 문자 범위(U+0020 ~ U+007E)의 표시 가능한 유니코드 문자로 구성되고, IDNA 표준에 따라 형식이 지정된 문자열입니다.
예외
unicode
이(가) null
인 경우
index
또는 count
가 0보다 작습니다.
또는
index
이 unicode
의 길이보다 큽니다.
또는
index
가 unicode
의 길이에서 count
를 뺀 값보다 큰 경우
unicode
가 AllowUnassigned 및 UseStd3AsciiRules 속성과 IDNA 표준에 맞지 않는 경우
예제
다음 예제에서는 메서드를 GetAscii(String, Int32, Int32) 사용하여 국제화된 도메인 이름을 IDNA 표준을 준수하는 도메인 이름으로 변환합니다. 그런 다음, 메서드는 GetUnicode(String, Int32, Int32) 표준화된 도메인 이름을 원래 도메인 이름으로 다시 변환하지만 원래 레이블 구분 기호를 표준 레이블 구분 기호로 바꿉니다.
// 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).
'
설명
, index
및 count
매개 변수는 Unicode
유효한 유니코드 문자로 구성된 하나 이상의 레이블이 있는 부분 문자열을 정의합니다. 레이블은 레이블 구분 기호로 구분됩니다. 부분 문자열의 첫 번째 문자는 레이블 구분 기호로 시작할 수 없지만 포함할 수 있으며 필요에 따라 구분 기호로 끝날 수 있습니다. 레이블 구분 기호는 FULL STOP(period, U+002E), IDEOGRAPHIC FULL STOP(U+3002), FULLWIDTH FULL STOP(U+FF0E) 및 HALFWIDTH IDEOGRAPHIC FULL STOP(U+FF61)입니다. 예를 들어 도메인 이름 "www.adatum.com"은 마침표로 구분된 레이블 "www", "adatum" 및 "com"으로 구성됩니다.
레이블에는 다음 문자가 포함될 수 없습니다.
U+0001에서 U+001F 및 U+007F까지의 유니코드 제어 문자입니다.
속성 값에 따라 할당되지 않은 유니코드 문자입니다 AllowUnassigned .
속성 값에 따라 SPACE(U+0020), EXCLAMATION MARK(U+0021) 및 LOW LINE(U+005F) 문자와 같은 US-ASCII 문자 범위의 UseStd3AsciiRules 비표준 문자입니다.
IDNA 표준의 특정 버전에서 금지된 문자입니다. 금지 된 문자에 대 한 자세한 내용은 참조 하세요. RFC 3454: 준비의 다국어 문자열 ("stringprep") IDNA 2003 및 RFC 5982: The 유니코드 코드 포인트 및에 대 한 다국어 도메인 이름 애플리케이션 IDNA 2008에 대 한 합니다.
메서드는 GetAscii 모든 레이블 구분 기호를 FULL STOP(period, U+002E)으로 변환합니다. 부분 문자열에 US-ASCII 문자 범위를 벗어나는 문자가 없고 US-ASCII 문자 범위 내의 문자가 금지되지 않으면 메서드는 변경되지 않은 부분 문자열을 반환합니다.
호출자 참고
.NET Framework 4.5에서 클래스는 IdnMapping 사용 중인 운영 체제에 따라 다른 버전의 IDNA 표준을 지원합니다.
Windows 8 실행하면 RFC 5891: IDNA(Internationalized Domain Names in Applications): Protocol에 설명된 2008 버전의 IDNA 표준을 지원합니다.
이전 버전의 Windows 운영 체제를 실행 하는 경우에 설명 된 표준의 2003 버전 지원 RFC 3490: 애플리케이션 (IDNA)에서 도메인 이름을 국제화합니다.
이러한 표준이 특정 문자 집합을 처리하는 방식의 차이는 유니코드 기술 표준 #46: IDNA 호환성 처리를 참조하세요.
적용 대상
.NET