IdnMapping.GetAscii 메서드

정의

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인 경우

unicodeAllowUnassignedUseStd3AsciiRules 속성과 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"으로 구성됩니다.

레이블에는 다음 문자가 포함될 수 없습니다.

메서드는 GetAscii 모든 레이블 구분 기호를 FULL STOP(period, U+002E)으로 변환합니다.

US-ASCII 문자 범위를 벗어나는 문자가 없고 US-ASCII 문자 범위 내의 문자가 금지되지 않는 경우 unicode 메서드는 변경되지 않은 문자를 반환 unicode 합니다.

호출자 참고

.NET Framework 4.5에서 클래스는 IdnMapping 사용 중인 운영 체제에 따라 다른 버전의 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 문자열의 끝까지 수행됩니다.

반환

unicodeindex 매개 변수로 지정된 부분 문자열에 해당하며, US-ASCII 문자 범위(U+0020 ~ U+007E)의 표시 가능한 유니코드 문자로 구성되고, IDNA 표준에 따라 형식이 지정된 문자열입니다.

예외

unicodenull입니다.

index가 0보다 작은 경우

또는

indexunicode의 길이보다 큽니다.

unicodeAllowUnassignedUseStd3AsciiRules 속성과 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"으로 구성됩니다.

레이블에는 다음 문자가 포함될 수 없습니다.

메서드는 GetAscii 모든 레이블 구분 기호를 FULL STOP(period, U+002E)으로 변환합니다.

US-ASCII 문자 범위를 벗어나는 문자가 없고 US-ASCII 문자 범위 내의 문자가 금지되지 않는 경우 unicode 메서드는 변경되지 않은 문자를 반환 unicode 합니다.

호출자 참고

.NET Framework 4.5에서 클래스는 IdnMapping 사용 중인 운영 체제에 따라 다른 버전의 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, indexcount 매개 변수로 지정된 부분 문자열에 해당하며, US-ASCII 문자 범위(U+0020 ~ U+007E)의 표시 가능한 유니코드 문자로 구성되고, IDNA 표준에 따라 형식이 지정된 문자열입니다.

예외

unicode이(가) null인 경우

index 또는 count가 0보다 작습니다.

또는

indexunicode의 길이보다 큽니다.

또는

indexunicode의 길이에서 count를 뺀 값보다 큰 경우

unicodeAllowUnassignedUseStd3AsciiRules 속성과 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).
'

설명

, indexcount 매개 변수는 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"으로 구성됩니다.

레이블에는 다음 문자가 포함될 수 없습니다.

메서드는 GetAscii 모든 레이블 구분 기호를 FULL STOP(period, U+002E)으로 변환합니다. 부분 문자열에 US-ASCII 문자 범위를 벗어나는 문자가 없고 US-ASCII 문자 범위 내의 문자가 금지되지 않으면 메서드는 변경되지 않은 부분 문자열을 반환합니다.

호출자 참고

.NET Framework 4.5에서 클래스는 IdnMapping 사용 중인 운영 체제에 따라 다른 버전의 IDNA 표준을 지원합니다.

이러한 표준이 특정 문자 집합을 처리하는 방식의 차이는 유니코드 기술 표준 #46: IDNA 호환성 처리를 참조하세요.

적용 대상