Encoding 클래스

정의

문자 인코딩을 나타냅니다.

public ref class Encoding abstract
public ref class Encoding abstract : ICloneable
public abstract class Encoding
public abstract class Encoding : ICloneable
[System.Serializable]
public abstract class Encoding
[System.Serializable]
[System.Runtime.InteropServices.ComVisible(true)]
public abstract class Encoding : ICloneable
type Encoding = class
type Encoding = class
    interface ICloneable
[<System.Serializable>]
type Encoding = class
[<System.Serializable>]
[<System.Runtime.InteropServices.ComVisible(true)>]
type Encoding = class
    interface ICloneable
Public MustInherit Class Encoding
Public MustInherit Class Encoding
Implements ICloneable
상속
Encoding
파생
특성
구현

예제

다음 예제에서는 문자열을 한 인코딩에서 다른 인코딩으로 변환합니다.

메모

byte[] 이 예제에서 인코딩된 데이터를 포함하는 유일한 형식은 배열입니다. .NET CharString 형식은 자체 유니코드이므로 GetChars 호출은 데이터를 유니코드로 다시 디코딩합니다.

using System;
using System.Text;

class ConvertExample
{
   static void Run()
   {
      string unicodeString = "This string contains the unicode character Pi (\u03a0)";

      // Create two different encodings.
      Encoding ascii = Encoding.ASCII;
      Encoding unicode = Encoding.Unicode;

      // Convert the string into a byte array.
      byte[] unicodeBytes = unicode.GetBytes(unicodeString);

      // Perform the conversion from one encoding to the other.
      byte[] asciiBytes = Encoding.Convert(unicode, ascii, unicodeBytes);
         
      // Convert the new byte[] into a char[] and then into a string.
      char[] asciiChars = new char[ascii.GetCharCount(asciiBytes, 0, asciiBytes.Length)];
      ascii.GetChars(asciiBytes, 0, asciiBytes.Length, asciiChars, 0);
      string asciiString = new string(asciiChars);

      // Display the strings created before and after the conversion.
      Console.WriteLine("Original string: {0}", unicodeString);
      Console.WriteLine("Ascii converted string: {0}", asciiString);
   }
}

// The example displays the following output:
//    Original string: This string contains the unicode character Pi (Π)
//    Ascii converted string: This string contains the unicode character Pi (?)
Imports System.Text

Class Example1
   Shared Sub Run()
      Dim unicodeString As String = "This string contains the unicode character Pi (" & ChrW(&H03A0) & ")"

      ' Create two different encodings.
      Dim ascii As Encoding = Encoding.ASCII
      Dim unicode As Encoding = Encoding.Unicode

      ' Convert the string into a byte array.
      Dim unicodeBytes As Byte() = unicode.GetBytes(unicodeString)

      ' Perform the conversion from one encoding to the other.
      Dim asciiBytes As Byte() = Encoding.Convert(unicode, ascii, unicodeBytes)

      ' Convert the new byte array into a char array and then into a string.
      Dim asciiChars(ascii.GetCharCount(asciiBytes, 0, asciiBytes.Length)-1) As Char
      ascii.GetChars(asciiBytes, 0, asciiBytes.Length, asciiChars, 0)
      Dim asciiString As New String(asciiChars)

      ' Display the strings created before and after the conversion.
      Console.WriteLine("Original string: {0}", unicodeString)
      Console.WriteLine("Ascii converted string: {0}", asciiString)
   End Sub
End Class
' The example displays the following output:
'    Original string: This string contains the unicode character Pi (Π)
'    Ascii converted string: This string contains the unicode character Pi (?)

설명

클래스는 Encoding 문자 인코딩을 나타냅니다.

인코딩은 유니코드 문자 집합을 바이트 시퀀스로 변환하는 프로세스입니다. 반면 디코딩은 인코딩된 바이트 시퀀스를 유니코드 문자 집합으로 변환하는 프로세스입니다. UTF(유니코드 변환 형식) 및 지원되는 Encoding기타 인코딩에 대한 자세한 내용은 .NET의 문자 인코딩을 참조하세요.

Encoding 는 바이트 배열과 같은 임의의 이진 데이터 대신 유니코드 문자에서 작동하기 위한 것입니다. 임의의 이진 데이터를 텍스트로 인코딩해야 하는 경우 uuencode와 같은 프로토콜을 사용해야 합니다. 이 프로토콜은 다음과 같은 Convert.ToBase64CharArray메서드에 의해 구현됩니다.

.NET은 현재 유니코드 인코딩 및 기타 인코딩을 지원하기 위해 클래스의 Encoding 다음 구현을 제공합니다.

  • ASCIIEncoding 유니코드 문자를 단일 7비트 ASCII 문자로 인코딩합니다. 이 인코딩은 U+0000과 U+007F 사이의 문자 값만 지원합니다. 코드 페이지 20127. 속성을 통해 ASCII에서도 사용할 수 있습니다.

  • UTF7Encoding UTF-7 인코딩을 사용하여 유니코드 문자를 인코딩합니다. 이 인코딩은 모든 유니코드 문자 값을 지원합니다. 코드 페이지 65000. 속성을 통해 UTF7에서도 사용할 수 있습니다.

  • UTF8Encoding UTF-8 인코딩을 사용하여 유니코드 문자를 인코딩합니다. 이 인코딩은 모든 유니코드 문자 값을 지원합니다. 코드 페이지 65001. 속성을 통해 UTF8에서도 사용할 수 있습니다.

  • UnicodeEncoding UTF-16 인코딩을 사용하여 유니코드 문자를 인코딩합니다. 리틀 엔디안 및 빅 엔디안 바이트 순서가 모두 지원됩니다. Unicode 속성과 BigEndianUnicode 속성을 통해서도 사용할 수 있습니다.

  • UTF32Encoding UTF-32 인코딩을 사용하여 유니코드 문자를 인코딩합니다. little endian(코드 페이지 12000) 및 big endian(코드 페이지 12001) 바이트 주문이 모두 지원됩니다. 속성을 통해 UTF32에서도 사용할 수 있습니다.

Encoding 클래스는 주로 서로 다른 인코딩과 유니코드 간에 변환하기 위한 것입니다. 파생 유니코드 클래스 중 하나가 앱에 적합한 선택인 경우가 많습니다.

메서드를 GetEncoding 사용하여 다른 인코딩을 가져오고 메서드를 GetEncodings 호출하여 모든 인코딩 목록을 가져옵니다.

인코딩 목록

다음 표에서는 .NET에서 지원하는 인코딩을 나열합니다. 각 인코딩의 코드 페이지 번호와 인코딩의 EncodingInfo.NameEncodingInfo.DisplayName 속성의 값을 나열합니다. .NET Framework 지원, .NET Core 지원 또는 .NET5 이상 지원 열의 확인 표시는 기본 플랫폼에 관계없이 해당 .NET 구현에서 코드 페이지가 기본적으로 지원됨을 나타냅니다. .NET Framework의 경우 테이블에 나열된 다른 인코딩의 가용성은 운영 체제에 따라 달라집니다. .NET Core 및 .NET 5 이상의 버전에서는 System.Text.CodePagesEncodingProvider 클래스를 사용하거나 System.Text.EncodingProvider 클래스에서 파생하여 다른 인코딩을 사용할 수 있습니다.

메모

해당 속성이 EncodingInfo.Name 국제 표준에 해당하는 코드 페이지가 반드시 해당 표준을 완전히 준수하지는 않습니다.

코드 페이지 Name 표시 이름 .NET Framework 지원 .NET Core 지원 .NET 5 이상 지원
37 IBM037 IBM EBCDIC(US-Canada)
437 IBM437 OEM 미국
500 IBM500 IBM EBCDIC(International)
708 ASMO-708 아랍어(ASMO 708)
720 DOS-720 아랍어(DOS)
737 ibm737 그리스어(DOS)
775 ibm775 발틱 (DOS)
850 ibm850 서유럽어(DOS)
852 ibm852 중부 유럽(DOS)
855 IBM855 OEM 키릴 문자
857 ibm857 터키어(DOS)
858 IBM00858 OEM 다국어 라틴어 I
860 IBM860 포르투갈어(DOS)
861 ibm861 아이슬란드어(DOS)
862 DOS-862 히브리어(DOS)
863 IBM863 프랑스어 캐나다어(DOS)
864 IBM864 아랍어(864)
865 IBM865 북유럽어(DOS)
866 cp866 키릴 자모(DOS)
869 ibm869 그리스어, 현대식(DOS)
870 IBM870 IBM EBCDIC(다국어 라틴어-2)
874 windows-874 태국어(Windows)
875 cp875 IBM EBCDIC (그리스어 현대)
932 shift_jis 일본어(Shift-JIS)
936 gb2312 중국어 간체(GB2312)
949 ks_c_5601-1987 한국어
950 big5 중국어 번체(Big5)
1026 IBM1026 IBM EBCDIC(터키어 라틴어-5)
1047 IBM01047 IBM Latin-1
1140 IBM01140 IBM EBCDIC(미국-Canada-Euro)
1141 IBM01141 IBM EBCDIC(Germany-Euro)
1142 IBM01142 IBM EBCDIC(덴마크-Norway-Euro)
1143 IBM01143 IBM EBCDIC(핀란드-Sweden-Euro)
1144 IBM01144 IBM EBCDIC(Italy-Euro)
1145 IBM01145 IBM EBCDIC(Spain-Euro)
1146 IBM01146 IBM EBCDIC(UK-Euro)
1147 IBM01147 IBM EBCDIC(France-Euro)
1148 IBM01148 IBM EBCDIC(International-Euro)
1149 IBM01149 IBM EBCDIC(Icelandic-Euro)
1200 utf-16 유니코드
1201 unicodeFFFE 유니코드(빅 엔디안)
1250 windows-1250 중부 유럽(Windows)
1251 windows-1251 키릴 자모(Windows)
1252 Windows-1252 서유럽어(Windows)
1253 windows-1253 그리스어(Windows)
1254 windows-1254 터키어(Windows)
1255 windows-1255 히브리어(Windows)
1256 windows-1256 아랍어(Windows)
1257 windows-1257 발트(Windows)
1258 windows-1258 베트남어(Windows)
1361 Johab 한국어(조합)
10000 매킨토시 서유럽어(Mac)
10001 x-mac-japanese 일본어(Mac)
10002 x-mac-chinesetrad 중국어 번체 (Mac)
10003 x-mac-korean 한국어(Mac)
10004 x-mac-arabic 아랍어(Mac)
10005 x-mac-hebrew 히브리어(Mac)
10006 x-mac-greek 그리스어(Mac)
10007 x-mac-키릴 문자 키릴 문자(Mac)
10008 x-mac-chinesesimp 중국어 간체(Mac)
10010 x-mac-루마니아어 루마니아어(Mac)
10017 엑스-맥-우크라이나어 우크라이나어(Mac)
10021 x-mac-thai 태국어(Mac)
10029 x-mac-ce 중부 유럽(Mac)
10079 x-mac-icelandic 아이슬란드어(Mac)
10081 x-mac-터키어 터키어(Mac)
10082 x-mac-크로아티아어 크로아티아어(Mac)
12000 utf-32 유니코드(UTF-32)
12001 utf-32BE 유니코드(UTF-32 빅 엔디안)
20000 x-Chinese-CNS 중국어 번체(CNS)
20001 x-cp20001 TCA 대만
20002 x-Chinese-Eten 중국어 번체(에텐)
20003 x-cp20003 대만 IBM5550
20004 x-cp20004 TeleText 대만
20005 x-cp20005 왕 대만
20105 x-IA5 서유럽어(IA5)
20106 x-IA5-German 독일어(IA5)
20107 x-IA5-Swedish 스웨덴어(IA5)
20108 x-IA5-Norwegian 노르웨이어(IA5)
20127 us-ascii (미국 ASCII 문자 인코딩 표준) US-ASCII
20261 x-cp20261 T.61
20269 x-cp20269 ISO-6937
20273 IBM273 IBM EBCDIC(독일)
20277 IBM277 IBM EBCDIC(Denmark-Norway)
20278 IBM278 IBM EBCDIC(Finland-Sweden)
20280 IBM280 IBM EBCDIC(이탈리아)
20284 IBM284 IBM EBCDIC(스페인)
20285 IBM285 IBM EBCDIC(영국)
20290 IBM290 IBM EBCDIC(일본어 가타카나)
20297 IBM297 IBM EBCDIC(프랑스)
20420 IBM420 IBM EBCDIC(아랍어)
20423 IBM423 IBM EBCDIC(그리스어)
20424 IBM424 IBM EBCDIC(히브리어)
20833 x-EBCDIC-KoreanExtended IBM EBCDIC(한국어 확장)
20838 IBM-Thai IBM EBCDIC(태국어)
20866 koi8-r 키릴 자모 (KOI8-R)
20871 IBM871 IBM EBCDIC(아이슬란드어)
20880 IBM880 IBM EBCDIC(러시아어 키릴 문자)
20905 IBM905 IBM EBCDIC(터키어)
20924 IBM00924 IBM Latin-1
20932 EUC-JP 일본어(JIS 0208-1990 및 0212-1990)
20936 x-cp20936 중국어 간체(GB2312-80)
20949 x-cp20949 한국어 Wansung
21025 cp1025 IBM EBCDIC (키릴 문자 Serbian-Bulgarian)
21866 koi8-u 키릴 자모 (KOI8-U)
28591 iso-8859-1 서유럽어(ISO)
28592 iso-8859-2 중앙 유럽(ISO)
28593 iso-8859-3 라틴어 3(ISO)
28594 iso-8859-4 발트어(ISO)
28595 iso-8859-5 키릴 자모(ISO)
28596 iso-8859-6 아랍어(ISO)
28597 iso-8859-7 그리스어(ISO)
28598 iso-8859-8 히브리어(ISO-Visual)
28599 iso-8859-9 터키어(ISO)
28603 iso-8859-13 에스토니아어(ISO)
28605 iso-8859-15 라틴어 9(ISO)
29001 x-Europa 에우로파
38598 iso-8859-8-i 히브리어(ISO-Logical)
50220 iso-2022-jp 일본어(JIS)
50221 csISO2022JP 일본어(JIS-Allow 1바이트 가나)
50222 iso-2022-jp 일본어(JIS-Allow 1바이트 가나 - SO/SI)
50225 iso-2022-kr 한국어(ISO)
50227 x-cp50227 중국어 간체(ISO-2022)
51932 euc-jp 일본어(EUC)
51936 EUC-CN 중국어 간체(EUC)
51949 euc-kr 한국어(EUC)
52,936 hz-gb-2312 중국어 간체(HZ)
54936 GB18030 중국어 간체(GB18030)
57002 x-iscii-de ISCII 데바나가리
57003 x-iscii-be ISCII 벵골어
57004 x-iscii-ta ISCII 타밀어
57005 x-iscii-te ISCII 텔루구어
57006 x-iscii-as ISCII 아삼어
57007 x-iscii-or ISCII 오리야
57008 x-iscii-ka ISCII Kannada
57009 x-iscii-ma ISCII 말라얄람
57010 x-iscii-gu ISCII 구자라트어
57011 x-iscii-pa ISCII 펀자브어
65000 utf-7 유니코드(UTF-7)
65001 utf-8 유니코드(UTF-8)

다음 예제에서는 GetEncoding(Int32) 메서드 및 GetEncoding(String) 메서드를 호출하여 그리스어(Windows) 코드 페이지 인코딩을 가져옵니다. 메서드 호출에서 반환된 개체를 비교하여 Encoding 동일한 것을 표시한 다음, 맵은 그리스어 알파벳의 각 문자에 대한 유니코드 코드 포인트와 해당 코드 페이지 값을 표시합니다.

using System;
using System.Text;

public class GetEncodingExample
{
   public static void Run()
   {
      Encoding enc = Encoding.GetEncoding(1253);
      Encoding altEnc = Encoding.GetEncoding("windows-1253");
      Console.WriteLine($"{enc.EncodingName} = Code Page {altEnc.CodePage}: {enc.Equals(altEnc)}");
      string greekAlphabet = "Α α Β β Γ γ Δ δ Ε ε Ζ ζ Η η " +
                             "Θ θ Ι ι Κ κ Λ λ Μ μ Ν ν Ξ ξ " +
                             "Ο ο Π π Ρ ρ Σ σ ς Τ τ Υ υ " +
                             "Φ φ Χ χ Ψ ψ Ω ω";
      Console.OutputEncoding = Encoding.UTF8;
      byte[] bytes = enc.GetBytes(greekAlphabet);
      Console.WriteLine("{0,-12} {1,20} {2,20:X2}", "Character",
                        "Unicode Code Point", "Code Page 1253");
      for (int ctr = 0; ctr < bytes.Length; ctr++) {
         if (greekAlphabet[ctr].Equals(' '))
            continue;

         Console.WriteLine("{0,-12} {1,20} {2,20:X2}", greekAlphabet[ctr],
                           GetCodePoint(greekAlphabet[ctr]), bytes[ctr]);
      }
   }

   private static string GetCodePoint(char ch)
   {
      string retVal = "u+";
      byte[] bytes = Encoding.Unicode.GetBytes(ch.ToString());
      for (int ctr = bytes.Length - 1; ctr >= 0; ctr--)
         retVal += bytes[ctr].ToString("X2");

      return retVal;
   }
}

// The example displays the following output:
//       Character      Unicode Code Point       Code Page 1253
//       Α                          u+0391                   C1
//       α                          u+03B1                   E1
//       Β                          u+0392                   C2
//       β                          u+03B2                   E2
//       Γ                          u+0393                   C3
//       γ                          u+03B3                   E3
//       Δ                          u+0394                   C4
//       δ                          u+03B4                   E4
//       Ε                          u+0395                   C5
//       ε                          u+03B5                   E5
//       Ζ                          u+0396                   C6
//       ζ                          u+03B6                   E6
//       Η                          u+0397                   C7
//       η                          u+03B7                   E7
//       Θ                          u+0398                   C8
//       θ                          u+03B8                   E8
//       Ι                          u+0399                   C9
//       ι                          u+03B9                   E9
//       Κ                          u+039A                   CA
//       κ                          u+03BA                   EA
//       Λ                          u+039B                   CB
//       λ                          u+03BB                   EB
//       Μ                          u+039C                   CC
//       μ                          u+03BC                   EC
//       Ν                          u+039D                   CD
//       ν                          u+03BD                   ED
//       Ξ                          u+039E                   CE
//       ξ                          u+03BE                   EE
//       Ο                          u+039F                   CF
//       ο                          u+03BF                   EF
//       Π                          u+03A0                   D0
//       π                          u+03C0                   F0
//       Ρ                          u+03A1                   D1
//       ρ                          u+03C1                   F1
//       Σ                          u+03A3                   D3
//       σ                          u+03C3                   F3
//       ς                          u+03C2                   F2
//       Τ                          u+03A4                   D4
//       τ                          u+03C4                   F4
//       Υ                          u+03A5                   D5
//       υ                          u+03C5                   F5
//       Φ                          u+03A6                   D6
//       φ                          u+03C6                   F6
//       Χ                          u+03A7                   D7
//       χ                          u+03C7                   F7
//       Ψ                          u+03A8                   D8
//       ψ                          u+03C8                   F8
//       Ω                          u+03A9                   D9
//       ω                          u+03C9                   F9
Imports System.Text

Module Example2
   Public Sub Run()
      Dim enc As Encoding = Encoding.GetEncoding(1253)
      Dim altEnc As Encoding = Encoding.GetEncoding("windows-1253")
      Console.WriteLine("{0} = Code Page {1}: {2}", enc.EncodingName,
                        altEnc.CodePage, enc.Equals(altEnc))
      Dim greekAlphabet As String = "Α α Β β Γ γ Δ δ Ε ε Ζ ζ Η η " +
                                    "Θ θ Ι ι Κ κ Λ λ Μ μ Ν ν Ξ ξ " +
                                    "Ο ο Π π Ρ ρ Σ σ ς Τ τ Υ υ " +
                                    "Φ φ Χ χ Ψ ψ Ω ω"
      Console.OutputEncoding = Encoding.UTF8
      Dim bytes() As Byte = enc.GetBytes(greekAlphabet)
      Console.WriteLine("{0,-12} {1,20} {2,20:X2}", "Character",
                        "Unicode Code Point", "Code Page 1253")
      For ctr As Integer = 0 To bytes.Length - 1
         If greekAlphabet(ctr).Equals(" "c) Then Continue For

         Console.WriteLine("{0,-12} {1,20} {2,20:X2}", greekAlphabet(ctr),
                           GetCodePoint(greekAlphabet(ctr)), bytes(ctr))
      Next

   End Sub

   Private Function GetCodePoint(ch As String) As String
      Dim retVal As String = "u+"
      Dim bytes() As Byte = Encoding.Unicode.GetBytes(ch)
      For ctr As Integer = bytes.Length - 1 To 0 Step -1
         retVal += bytes(ctr).ToString("X2")
      Next
      Return retVal
   End Function
End Module
' The example displays the following output:
'    Character      Unicode Code Point       Code Page 1253
'    Α                          u+0391                   C1
'    α                          u+03B1                   E1
'    Β                          u+0392                   C2
'    β                          u+03B2                   E2
'    Γ                          u+0393                   C3
'    γ                          u+03B3                   E3
'    Δ                          u+0394                   C4
'    δ                          u+03B4                   E4
'    Ε                          u+0395                   C5
'    ε                          u+03B5                   E5
'    Ζ                          u+0396                   C6
'    ζ                          u+03B6                   E6
'    Η                          u+0397                   C7
'    η                          u+03B7                   E7
'    Θ                          u+0398                   C8
'    θ                          u+03B8                   E8
'    Ι                          u+0399                   C9
'    ι                          u+03B9                   E9
'    Κ                          u+039A                   CA
'    κ                          u+03BA                   EA
'    Λ                          u+039B                   CB
'    λ                          u+03BB                   EB
'    Μ                          u+039C                   CC
'    μ                          u+03BC                   EC
'    Ν                          u+039D                   CD
'    ν                          u+03BD                   ED
'    Ξ                          u+039E                   CE
'    ξ                          u+03BE                   EE
'    Ο                          u+039F                   CF
'    ο                          u+03BF                   EF
'    Π                          u+03A0                   D0
'    π                          u+03C0                   F0
'    Ρ                          u+03A1                   D1
'    ρ                          u+03C1                   F1
'    Σ                          u+03A3                   D3
'    σ                          u+03C3                   F3
'    ς                          u+03C2                   F2
'    Τ                          u+03A4                   D4
'    τ                          u+03C4                   F4
'    Υ                          u+03A5                   D5
'    υ                          u+03C5                   F5
'    Φ                          u+03A6                   D6
'    φ                          u+03C6                   F6
'    Χ                          u+03A7                   D7
'    χ                          u+03C7                   F7
'    Ψ                          u+03A8                   D8
'    ψ                          u+03C8                   F8
'    Ω                          u+03A9                   D9
'    ω                          u+03C9                   F9

변환할 데이터를 순차 블록(예: 스트림에서 읽은 데이터)에서만 사용할 수 있거나, 데이터의 양이 너무 많아 더 작은 블록으로 나누어야 하는 경우에는 Decoder 메서드의 Encoder 또는 GetDecoder 메서드의 GetEncoder를 각각 제공하는 파생 클래스의 메서드를 사용해야 합니다.

UTF-16 및 UTF-32 인코더는 big endian 바이트 순서(가장 중요한 바이트 우선) 또는 작은 엔디안 바이트 순서(가장 중요하지 않은 바이트 우선)를 사용할 수 있습니다. 예를 들어 라틴 문자 A(U+0041)는 다음과 같이 직렬화됩니다(16진수).

  • UTF-16 빅 엔디언 바이트 순서: 00 41
  • UTF-16 리틀 엔디언 바이트 순서: 41 00
  • UTF-32 빅 엔디언 바이트 순서: 00 00 00 41
  • UTF-32 little endian 바이트 순서: 41 00 00 00

일반적으로 네이티브 바이트 순서를 사용하여 유니코드 문자를 저장하는 것이 더 효율적입니다. 예를 들어 Intel 컴퓨터와 같은 little endian 플랫폼에서 작은 엔디안 바이트 순서를 사용하는 것이 좋습니다.

메서드는 GetPreamble BOM(바이트 순서 표시)을 포함하는 바이트 배열을 검색합니다. 이 바이트 배열이 인코딩된 스트림에 접두사를 지정하면 디코더가 사용되는 인코딩 형식을 식별하는 데 도움이 됩니다.

바이트 순서 및 바이트 순서 표시에 대한 자세한 내용은 유니코드 홈페이지의 유니코드 표준을 참조하세요.

인코딩 클래스는 다음과 같은 오류를 허용합니다.

  • 자동으로 "?" 문자로 변경합니다.
  • "최적" 문자를 사용합니다.
  • U+FFFD 유니코드 대체 문자를 사용하여 EncoderFallbackDecoderFallback 클래스를 통해 애플리케이션에 특정한 동작으로 변경합니다.

데이터 스트림 오류가 발생할 경우 예외를 발생시켜야 합니다. 앱은 해당하는 경우 "throwonerror" 플래그를 사용하거나 EncoderExceptionFallbackDecoderExceptionFallback 클래스를 사용합니다. 가장 적합한 대체(fallback)는 데이터 손실이나 혼동을 일으킬 수 있고 단순 문자 교체보다 느리기 때문에 권장되지 않는 경우가 많습니다. ANSI 인코딩의 경우 가장 적합한 동작이 기본값입니다.

생성자

Name Description
Encoding()

Encoding 클래스의 새 인스턴스를 초기화합니다.

Encoding(Int32, EncoderFallback, DecoderFallback)

지정된 인코더 및 디코더 대체 전략을 사용하여 지정된 코드 페이지에 해당하는 클래스의 새 인스턴스 Encoding 를 초기화합니다.

Encoding(Int32)

지정된 코드 페이지에 해당하는 클래스의 Encoding 새 인스턴스를 초기화합니다.

속성

Name Description
ASCII

ASCII(7비트) 문자 집합의 인코딩을 가져옵니다.

BigEndianUnicode

big endian 바이트 순서를 사용하는 UTF-16 형식의 인코딩을 가져옵니다.

BodyName

파생 클래스에서 재정의되는 경우 메일 에이전트 본문 태그와 함께 사용할 수 있는 현재 인코딩의 이름을 가져옵니다.

CodePage

파생 클래스에서 재정의된 경우 현재 Encoding클래스의 코드 페이지 식별자를 가져옵니다.

DecoderFallback

현재 DecoderFallback 개체의 Encoding 개체를 가져오거나 설정합니다.

Default

이 .NET 구현에 대한 기본 인코딩을 가져옵니다.

EncoderFallback

현재 EncoderFallback 개체의 Encoding 개체를 가져오거나 설정합니다.

EncodingName

파생 클래스에서 재정의되는 경우 현재 인코딩에 대한 사람이 읽을 수 있는 설명을 가져옵니다.

HeaderName

파생 클래스에서 재정의되는 경우 메일 에이전트 헤더 태그와 함께 사용할 수 있는 현재 인코딩의 이름을 가져옵니다.

IsBrowserDisplay

파생 클래스에서 재정의되는 경우 현재 인코딩을 브라우저 클라이언트에서 콘텐츠를 표시하는 데 사용할 수 있는지 여부를 나타내는 값을 가져옵니다.

IsBrowserSave

파생 클래스에서 재정의되는 경우 현재 인코딩을 브라우저 클라이언트에서 콘텐츠를 저장하는 데 사용할 수 있는지 여부를 나타내는 값을 가져옵니다.

IsMailNewsDisplay

파생 클래스에서 재정의되는 경우 현재 인코딩을 메일 및 뉴스 클라이언트에서 콘텐츠를 표시하는 데 사용할 수 있는지 여부를 나타내는 값을 가져옵니다.

IsMailNewsSave

파생 클래스에서 재정의되는 경우 현재 인코딩을 메일 및 뉴스 클라이언트에서 콘텐츠를 저장하는 데 사용할 수 있는지 여부를 나타내는 값을 가져옵니다.

IsReadOnly

파생 클래스에서 재정의되는 경우 현재 인코딩이 읽기 전용인지 여부를 나타내는 값을 가져옵니다.

IsSingleByte

파생 클래스에서 재정의되는 경우 현재 인코딩에서 싱글 바이트 코드 포인트를 사용하는지 여부를 나타내는 값을 가져옵니다.

Latin1

Latin1 문자 집합(ISO-8859-1)에 대한 인코딩을 가져옵니다.

Preamble

파생 클래스에서 재정의되는 경우 사용된 인코딩을 지정하는 바이트 시퀀스가 포함된 범위를 반환합니다.

Unicode

little endian 바이트 순서를 사용하여 UTF-16 형식의 인코딩을 가져옵니다.

UTF32

little endian 바이트 순서를 사용하여 UTF-32 형식의 인코딩을 가져옵니다.

UTF7
사용되지 않음.

UTF-7 형식의 인코딩을 가져옵니다.

UTF8

UTF-8 형식의 인코딩을 가져옵니다.

WebName

파생 클래스에서 재정의되는 경우 현재 인코딩에 대한 IANA(Internet Assigned Numbers Authority)에 등록된 이름을 가져옵니다.

WindowsCodePage

파생 클래스에서 재정의되는 경우 현재 인코딩에 가장 가까운 Windows 운영 체제 코드 페이지를 가져옵니다.

메서드

Name Description
Clone()

파생 클래스에서 재정의되는 경우 현재 Encoding 개체의 단순 복사본을 만듭니다.

Convert(Encoding, Encoding, Byte[], Int32, Int32)

바이트 배열의 바이트 범위를 한 인코딩에서 다른 인코딩으로 변환합니다.

Convert(Encoding, Encoding, Byte[])

전체 바이트 배열을 한 인코딩에서 다른 인코딩으로 변환합니다.

CreateTranscodingStream(Stream, Encoding, Encoding, Boolean)

Stream 내부와 바깥EncodingEncodingConvert(Encoding, Encoding, Byte[]) 간에 데이터를 코드 변환하는 역할을 하는 를 만듭니다.

Equals(Object)

지정된 Object 인스턴스가 현재 인스턴스와 같은지 여부를 확인합니다.

GetByteCount(Char[], Int32, Int32)

파생 클래스에서 재정의되는 경우 지정된 문자 배열의 문자 집합을 인코딩하여 생성된 바이트 수를 계산합니다.

GetByteCount(Char[])

파생 클래스에서 재정의되는 경우 지정된 문자 배열의 모든 문자를 인코딩하여 생성된 바이트 수를 계산합니다.

GetByteCount(Char*, Int32)

파생 클래스에서 재정의되는 경우 지정된 문자 포인터에서 시작하는 문자 집합을 인코딩하여 생성되는 바이트 수를 계산합니다.

GetByteCount(ReadOnlySpan<Char>)

파생 클래스에서 재정의되는 경우 지정된 문자 범위의 문자를 인코딩하여 생성되는 바이트 수를 계산합니다.

GetByteCount(String, Int32, Int32)

파생 클래스에서 재정의되는 경우 지정된 문자열의 문자 집합을 인코딩하여 생성되는 바이트 수를 계산합니다.

GetByteCount(String)

파생 클래스에서 재정의되는 경우 지정된 문자열의 문자를 인코딩하여 생성된 바이트 수를 계산합니다.

GetBytes(Char[], Int32, Int32, Byte[], Int32)

파생 클래스에서 재정의되는 경우 지정된 문자 배열의 문자 집합을 지정된 바이트 배열로 인코딩합니다.

GetBytes(Char[], Int32, Int32)

파생 클래스에서 재정의되는 경우 지정된 문자 배열의 문자 집합을 바이트 시퀀스로 인코딩합니다.

GetBytes(Char[])

파생 클래스에서 재정의되는 경우 지정된 문자 배열의 모든 문자를 바이트 시퀀스로 인코딩합니다.

GetBytes(Char*, Int32, Byte*, Int32)

파생 클래스에서 재정의되는 경우 지정된 문자 포인터에서 시작하는 문자 집합을 지정된 바이트 포인터에서 시작하여 저장되는 바이트 시퀀스로 인코딩합니다.

GetBytes(ReadOnlySpan<Char>, Span<Byte>)

파생 클래스에서 재정의되는 경우 지정된 읽기 전용 범위의 문자 집합을 바이트 범위로 인코딩합니다.

GetBytes(String, Int32, Int32, Byte[], Int32)

파생 클래스에서 재정의되는 경우 지정된 문자열의 문자 집합을 지정된 바이트 배열로 인코딩합니다.

GetBytes(String, Int32, Int32)

파생 클래스에서 재정의되는 경우 지정된 문자열에서 지정된 count 문자 수부터 시작하여 바이트 배열로 인코딩합니다 index.

GetBytes(String)

파생 클래스에서 재정의되는 경우 지정된 문자열의 모든 문자를 바이트 시퀀스로 인코딩합니다.

GetCharCount(Byte[], Int32, Int32)

파생 클래스에서 재정의되는 경우 지정된 바이트 배열에서 바이트 시퀀스를 디코딩하여 생성된 문자 수를 계산합니다.

GetCharCount(Byte[])

파생 클래스에서 재정의되는 경우 지정된 바이트 배열의 모든 바이트를 디코딩하여 생성된 문자 수를 계산합니다.

GetCharCount(Byte*, Int32)

파생 클래스에서 재정의되는 경우 지정된 바이트 포인터에서 시작하는 바이트 시퀀스를 디코딩하여 생성된 문자 수를 계산합니다.

GetCharCount(ReadOnlySpan<Byte>)

파생 클래스에서 재정의되는 경우 제공된 읽기 전용 바이트 범위를 디코딩하여 생성된 문자 수를 계산합니다.

GetChars(Byte[], Int32, Int32, Char[], Int32)

파생 클래스에서 재정의되는 경우 지정된 바이트 배열의 바이트 시퀀스를 지정된 문자 배열로 디코딩합니다.

GetChars(Byte[], Int32, Int32)

파생 클래스에서 재정의되는 경우 지정된 바이트 배열의 바이트 시퀀스를 문자 집합으로 디코딩합니다.

GetChars(Byte[])

파생 클래스에서 재정의되는 경우 지정된 바이트 배열의 모든 바이트를 문자 집합으로 디코딩합니다.

GetChars(Byte*, Int32, Char*, Int32)

파생 클래스에서 재정의되는 경우 지정된 바이트 포인터에서 시작하는 바이트 시퀀스를 지정된 문자 포인터에서 시작하여 저장되는 문자 집합으로 디코딩합니다.

GetChars(ReadOnlySpan<Byte>, Span<Char>)

파생 클래스에서 재정의되는 경우 지정된 읽기 전용 바이트 범위의 모든 바이트를 문자 범위로 디코딩합니다.

GetDecoder()

파생 클래스에서 재정의되는 경우 인코딩된 바이트 시퀀스를 문자 시퀀스로 변환하는 디코더를 가져옵니다.

GetEncoder()

파생 클래스에서 재정의되는 경우 유니코드 문자 시퀀스를 인코딩된 바이트 시퀀스로 변환하는 인코더를 가져옵니다.

GetEncoding(Int32, EncoderFallback, DecoderFallback)

지정된 코드 페이지 식별자와 연결된 인코딩을 반환합니다. 매개 변수는 인코딩할 수 없는 문자와 디코딩할 수 없는 바이트 시퀀스에 대한 오류 처리기를 지정합니다.

GetEncoding(Int32)

지정된 코드 페이지 식별자와 연결된 인코딩을 반환합니다.

GetEncoding(String, EncoderFallback, DecoderFallback)

지정된 코드 페이지 이름과 연결된 인코딩을 반환합니다. 매개 변수는 인코딩할 수 없는 문자와 디코딩할 수 없는 바이트 시퀀스에 대한 오류 처리기를 지정합니다.

GetEncoding(String)

지정된 코드 페이지 이름과 연결된 인코딩을 반환합니다.

GetEncodings()

모든 인코딩을 포함하는 배열을 반환합니다.

GetHashCode()

현재 인스턴스의 해시 코드를 반환합니다.

GetMaxByteCount(Int32)

파생 클래스에서 재정의되는 경우 지정된 문자 수를 인코딩하여 생성되는 최대 바이트 수를 계산합니다.

GetMaxCharCount(Int32)

파생 클래스에서 재정의되는 경우 지정된 바이트 수를 디코딩하여 생성된 최대 문자 수를 계산합니다.

GetPreamble()

파생 클래스에서 재정의되는 경우 사용된 인코딩을 지정하는 바이트 시퀀스를 반환합니다.

GetString(Byte[], Int32, Int32)

파생 클래스에서 재정의되는 경우 지정된 바이트 배열의 바이트 시퀀스를 문자열로 디코딩합니다.

GetString(Byte[])

파생 클래스에서 재정의되는 경우 지정된 바이트 배열의 모든 바이트를 문자열로 디코딩합니다.

GetString(Byte*, Int32)

파생 클래스에서 재정의되는 경우 지정된 주소에서 시작하는 지정된 바이트 수를 문자열로 디코딩합니다.

GetString(ReadOnlySpan<Byte>)

파생 클래스에서 재정의되는 경우 지정된 바이트 범위의 모든 바이트를 문자열로 디코딩합니다.

GetType()

현재 인스턴스의 Type 가져옵니다.

(다음에서 상속됨 Object)
IsAlwaysNormalized()

기본 정규화 형식을 사용하여 현재 인코딩이 항상 정규화되는지 여부를 나타내는 값을 가져옵니다.

IsAlwaysNormalized(NormalizationForm)

파생 클래스에서 재정의되는 경우 지정된 정규화 양식을 사용하여 현재 인코딩이 항상 정규화되는지 여부를 나타내는 값을 가져옵니다.

MemberwiseClone()

현재 Object단순 복사본을 만듭니다.

(다음에서 상속됨 Object)
RegisterProvider(EncodingProvider)

인코딩 공급자를 등록합니다.

ToString()

현재 개체를 나타내는 문자열을 반환합니다.

(다음에서 상속됨 Object)
TryGetBytes(ReadOnlySpan<Char>, Span<Byte>, Int32)

대상이 충분히 큰 경우 지정된 읽기 전용 범위에서 문자 집합을 바이트 범위로 인코딩합니다.

TryGetChars(ReadOnlySpan<Byte>, Span<Char>, Int32)

대상이 충분히 큰 경우 지정된 읽기 전용 범위에서 바이트 집합을 문자 범위로 디코딩합니다.

확장명 메서드

Name Description
GetBytes(Encoding, ReadOnlySequence<Char>, IBufferWriter<Byte>)

지정된 값을 사용하여 지정된 ReadOnlySequence<T> s를 byteEncoding 디코딩하고 결과를 writer씁니다.

GetBytes(Encoding, ReadOnlySequence<Char>, Span<Byte>)

지정된 값을 사용하여 지정된 ReadOnlySequence<T> s를 byteEncoding 인코딩하고 결과를 bytes출력합니다.

GetBytes(Encoding, ReadOnlySequence<Char>)

지정된 을 사용하여 지정된 ReadOnlySequence<T> 배열로 Byte 인코딩합니다 Encoding.

GetBytes(Encoding, ReadOnlySpan<Char>, IBufferWriter<Byte>)

지정된 값을 사용하여 지정된 ReadOnlySpan<T> s를 byteEncoding 인코딩하고 결과를 writer씁니다.

GetChars(Encoding, ReadOnlySequence<Byte>, IBufferWriter<Char>)

지정된 값을 사용하여 지정된 ReadOnlySequence<T> s를 charEncoding 디코딩하고 결과를 writer씁니다.

GetChars(Encoding, ReadOnlySequence<Byte>, Span<Char>)

지정된 값을 사용하여 지정된 ReadOnlySequence<T> s를 charEncoding 디코딩하고 결과를 chars출력합니다.

GetChars(Encoding, ReadOnlySpan<Byte>, IBufferWriter<Char>)

지정된 값을 사용하여 지정된 ReadOnlySpan<T> s를 charEncoding 디코딩하고 결과를 writer씁니다.

GetString(Encoding, ReadOnlySequence<Byte>)

지정된 을 사용하여 지정한 ReadOnlySequence<T>String 을 디코딩합니다 Encoding.

적용 대상

추가 정보