Encoding 클래스
정의
중요
일부 정보는 릴리스되기 전에 상당 부분 수정될 수 있는 시험판 제품과 관련이 있습니다. Microsoft는 여기에 제공된 정보에 대해 어떠한 명시적이거나 묵시적인 보증도 하지 않습니다.
문자 인코딩을 나타냅니다.
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 Char
및 String
형식은 자체 유니코드 이므로 GetChars 호출은 데이터를 다시 유니코드로 디코딩합니다.
using namespace System;
using namespace System::Text;
int main()
{
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.
array<Byte>^unicodeBytes = unicode->GetBytes( unicodeString );
// Perform the conversion from one encoding to the other.
array<Byte>^asciiBytes = Encoding::Convert( unicode, ascii, unicodeBytes );
// Convert the new Byte into[] a char and[] then into a string.
array<Char>^asciiChars = gcnew array<Char>(ascii->GetCharCount( asciiBytes, 0, asciiBytes->Length ));
ascii->GetChars( asciiBytes, 0, asciiBytes->Length, asciiChars, 0 );
String^ asciiString = gcnew 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 (?)
using System;
using System.Text;
class Example
{
static void Main()
{
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 Example
Shared Sub Main()
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 (?)
설명
인코딩은 유니코드 문자 집합을 바이트 시퀀스로 변환하는 프로세스입니다. 반대로 디코딩은 인코딩된 바이트 시퀀스를 유니코드 문자 집합으로 변환 하는 프로세스입니다. 에서 지 원하는 유니코드 변환 형식 (UTFs) 및 다른 인코딩에 대 한 자세한 내용은 Encoding .Net의 문자 인코딩을 참조 하세요.
는 Encoding 바이트 배열과 같은 임의의 이진 데이터 대신 유니코드 문자를 사용 하기 위한 것입니다. 임의의 이진 데이터를 텍스트로 인코딩해야 하는 경우와 같은 메서드에서 구현 되는 uuencode와 같은 프로토콜을 사용 해야 합니다 Convert.ToBase64CharArray .
.NET에서는 Encoding 현재 유니코드 인코딩과 기타 인코딩을 지원 하기 위해 다음과 같은 클래스 구현을 제공 합니다.
ASCIIEncoding유니코드 문자를 단일 7 비트 ASCII 문자로 인코딩합니다. 이 인코딩은 U + 0000과 U + 007F 사이의 사이의 문자 값만 지원 합니다. 코드 페이지 20127. 속성을 통해서도 사용할 수 있습니다 ASCII .
UTF7EncodingUTF-8 인코딩을 사용 하 여 유니코드 문자를 인코딩합니다. 이 인코딩은 모든 유니코드 문자 값을 지원 합니다. 코드 페이지 65000. 속성을 통해서도 사용할 수 있습니다 UTF7 .
UTF8EncodingUTF-8 인코딩을 사용 하 여 유니코드 문자를 인코딩합니다. 이 인코딩은 모든 유니코드 문자 값을 지원 합니다. 코드 페이지 65001. 속성을 통해서도 사용할 수 있습니다 UTF8 .
UnicodeEncodingUTF-16 인코딩을 사용 하 여 유니코드 문자를 인코딩합니다. Little endian 및 big endian 바이트 주문이 둘 다 지원 됩니다. 속성 및 속성을 통해 사용할 수도 있습니다 Unicode BigEndianUnicode .
UTF32Encoding32 UTF-8 인코딩을 사용 하 여 유니코드 문자를 인코딩합니다. Little endian (코드 페이지 12000) 및 big endian (코드 페이지 12001) 바이트 주문이 둘 다 지원 됩니다. 속성을 통해서도 사용할 수 있습니다 UTF32 .
Encoding클래스는 주로 다른 인코딩과 유니코드 간에 변환 하기 위한 것입니다. 주로 파생 된 유니코드 클래스 중 하나는 앱에 적합 한 선택입니다.
메서드를 사용 GetEncoding 하 여 다른 인코딩을 가져오고 메서드를 호출 하 여 GetEncodings 모든 인코딩의 목록을 가져옵니다.
인코딩 목록
다음 표에서는 .NET에서 지원 되는 인코딩을 보여 줍니다. 각 인코딩의 코드 페이지 번호와 인코딩의 및 속성 값이 나열 EncodingInfo.Name EncodingInfo.DisplayName 됩니다. .NET Framework 지원, .net Core 지원 또는 .net 5 이상 지원 열에서 확인 표시는 기본 플랫폼에 관계 없이 해당 .net 구현에서 코드 페이지가 기본적으로 지원 됨을 나타냅니다. .NET Framework에 대 한 자세한 내용은 운영 체제에 따라 달라 집니다. .NET Core 및 .NET 5 이상 버전의 경우 클래스를 사용 System.Text.CodePagesEncodingProvider 하거나 클래스에서 파생 하 여 다른 인코딩을 사용할 수 있습니다 System.Text.EncodingProvider .
참고
EncodingInfo.Name속성이 국제 표준에 해당 하는 코드 페이지는 해당 표준과 완전히 호환 되지 않을 수 있습니다.
코드 페이지 | 이름 | 표시 이름 | 지원 .NET Framework | .NET Core 지원 | .NET 5 이상 지원 | |
---|---|---|---|---|---|---|
37 | IBM037 | IBM EBCDIC (미국-캐나다) | ||||
437 | IBM437 | OEM 미국 | ||||
500 | IBM500 | IBM EBCDIC (국제) | ||||
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) | ||||
1026 | IBM1026 | IBM EBCDIC (터키어 라틴어-5) | ||||
1047 | IBM01047 | IBM 라틴어-1 | ||||
1140 | IBM01140 | IBM EBCDIC (미국-캐나다-유로) | ||||
1141 | IBM01141 | IBM EBCDIC (독일-유로) | ||||
1142 | IBM01142 | IBM EBCDIC (덴마크-노르웨이-유로) | ||||
1143 | IBM01143 | IBM EBCDIC (핀란드-스웨덴-유로) | ||||
1144 | IBM01144 | IBM EBCDIC (이탈리아-유로) | ||||
1145 | IBM01145 | IBM EBCDIC (스페인-유럽) | ||||
1146 | IBM01146 | IBM EBCDIC (영국-유럽) | ||||
1147 | IBM01147 | IBM EBCDIC (프랑스-유럽) | ||||
1148 | IBM01148 | IBM EBCDIC (국제-유럽) | ||||
1149 | IBM01149 | IBM EBCDIC (아이슬란드어-유로) | ||||
1200 | u t f-16 | 유니코드(Unicode) | ✓ | ✓ | ✓ | |
1201 | unicodeFFFE | 유니코드 (빅 endian) | ✓ | ✓ | ✓ | |
1250 | windows-1250 | 중앙 유럽어 (Windows) | ||||
1251 | windows-1251 | 키릴 자모 (Windows) | ||||
1252 | utf-8 | 서유럽어(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 | 조합 | 한국어 (조합) | ||||
10000 | 용 | 서유럽어 (Mac) | ||||
10001 | x-mac-일본어 | 일본어 (Mac) | ||||
10002 | x-mac-chinesetrad | 중국어 번체 (Mac) | ||||
10003 | x-mac-한국어 | 한국어(Mac) | ✓ | |||
10004 | x-mac-아랍어 | 아랍어 (Mac) | ||||
10005 | x-mac-히브리어 | 히브리어 (Mac) | ||||
10006 | x-mac-그리스어 | 그리스어 (Mac) | ||||
10007 | x-y-키릴 자모 | 키릴 자모 (Mac) | ||||
10008 | chinesesimp | 중국어 간체(Mac) | ✓ | |||
10010 | x-y-루마니아어 | 루마니아어 (Mac) | ||||
10017 | x-mac-우크라이나어 | 우크라이나어 (Mac) | ||||
10021 | x-mac – 태국어 | 태국어 (Mac) | ||||
10029 | x-y-ce | 중앙 유럽어 (Mac) | ||||
10079 | x-mac-아이슬란드어 | 아이슬란드어 (Mac) | ||||
10081 | x-y-터키어 | 터키어 (Mac) | ||||
10082 | x-mac-크로아티아어 | 크로아티아어 (Mac) | ||||
12000 | utf-32 | 유니코드 (UTF-32) | ✓ | ✓ | ✓ | |
12001 | utf-32BE | 유니코드 (UTF-32 빅 endian) | ✓ | ✓ | ✓ | |
20000 | x-중국어-CN | 중국어 번체 (CN) | ||||
20001 | x-cp20001 | TCA 대만 | ||||
20002 | x-중국어-Eten | 중국어 번체 (Eten) | ||||
20003 | x-cp20003 | IBM5550 대만 | ||||
20004 | x-cp20004 | 문자 다중 문자 (대만) | ||||
20005 | x-cp20005 | Wang 대만 | ||||
20105 | x-IA5 | 서유럽어 (IA5) | ||||
20106 | x IA5-독일어 | 독일어 (IA5) | ||||
20107 | x IA5-스웨덴어 | 스웨덴어 (IA5) | ||||
20108 | x IA5-노르웨이어 | 노르웨이어 (IA5) | ||||
20127 | us-ascii | US-ASCII | ✓ | ✓ | ✓ | |
20261 | x-cp20261 | T. 61 | ||||
20269 | x-cp20269 | ISO-6937 | ||||
20273 | IBM273 | IBM EBCDIC (독일) | ||||
20277 | IBM277 | IBM EBCDIC (덴마크-노르웨이) | ||||
20278 | IBM278 | IBM EBCDIC (핀란드-스웨덴) | ||||
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-태국어 | IBM EBCDIC (태국어) | ||||
20866 | (koi8-r | 키릴 자모 ((KOI8-R) | ||||
20871 | IBM871 | IBM EBCDIC (아이슬란드어) | ||||
20880 | IBM880 | IBM EBCDIC (키릴 자모 러시아어) | ||||
20905 | IBM905 | IBM EBCDIC (터키어) | ||||
20924 | IBM00924 | IBM 라틴어-1 | ||||
20932 | EUC-JP | 일본어 (JIS 0208-1990 및 0212-1990) | ||||
20936 | x-cp20936 | 중국어 간체(GB2312-80) | ✓ | |||
20949 | x-cp20949 | 한국어 Korean-wansung-unicode | ✓ | |||
21025 | cp1025 | IBM EBCDIC (키릴 자모 세르비아어-불가리아어) | ||||
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-유럽어 | 유럽어 | ||||
38598 | iso-8859-8-i | 히브리어 (ISO-논리적) | ✓ | |||
50220 | iso-2022-jp | 일본어(JIS) | ✓ | |||
50221 | csISO2022JP | 일본어 (JIS-1 바이트가 나) | ✓ | |||
50222 | iso-2022-jp | 일본어 (JIS-1 바이트가 나-a s i/SI) | ✓ | |||
50225 | iso-2022-kr | 한국어(ISO) | ✓ | |||
50227 | x-cp50227 | 중국어 간체(ISO-2022) | ✓ | |||
51932 | euc-jp | 일본어 (EUC) | ✓ | |||
51936 | EUC-CN | 중국어 간체 (EUC) | ✓ | |||
51949 | euc-kr | 한국어 (EUC) | ✓ | |||
52936 | 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-또는 | ISCII 오리야어 | ✓ | |||
57008 | x-y-카 | ISCII 카나다어 | ✓ | |||
57009 | x-iscii-ma | ISCII 말라얄람어 | ✓ | |||
57010 | gu | ISCII 구자라트어 | ✓ | |||
57011 | x-iscii-pa | ISCII 펀잡어 | ✓ | |||
65000 | u t f-7 | 유니코드 (UTF-7) | ✓ | ✓ | ||
65001 | utf-8 | 유니코드(UTF-8) | ✓ | ✓ | ✓ |
다음 예제에서는 GetEncoding(Int32) 및 메서드를 호출 GetEncoding(String) 하 여 그리스어 (Windows) 코드 페이지 인코딩을 가져옵니다. Encoding메서드 호출에서 반환 된 개체를 비교 하 여 동일한 지를 보여 줍니다. 그러면 맵은 그리스어 알파벳의 각 문자에 대 한 유니코드 코드 포인트와 해당 코드 페이지 값을 표시 합니다.
using System;
using System.Text;
public class Example
{
public static void Main()
{
Encoding enc = Encoding.GetEncoding(1253);
Encoding altEnc = Encoding.GetEncoding("windows-1253");
Console.WriteLine("{0} = Code Page {1}: {2}", enc.EncodingName,
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 Example
Public Sub Main()
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 클래스의 각 메서드에서 사용 해야 합니다.
U t f-16 및 u t f-32 인코더는 big endian 바이트 순서 (가장 중요 한 바이트 먼저) 또는 little endian 바이트 순서 (최하위 바이트 먼저)를 사용할 수 있습니다. 예를 들어 라틴어 대문자 A (U + 0041)는 다음과 같이 serialize 됩니다 (16 진수).
UTF-16 big endian 바이트 순서: 00 41
UTF-16 little endian 바이트 순서: 41 00
U t f-32 big endian 바이트 순서: 00 00 00 41
U t f-32 little endian 바이트 순서: 41 00 00 00
일반적으로 기본 바이트 순서를 사용 하 여 유니코드 문자를 저장 하는 것이 더 효율적입니다. 예를 들어 Intel 컴퓨터와 같은 little endian 플랫폼에서 little endian 바이트 순서를 사용 하는 것이 좋습니다.
GetPreamble메서드는 BOM (바이트 순서 표시)을 포함 하는 바이트 배열을 검색 합니다. 이 바이트 배열의 접두사가 인코딩된 스트림에 있으면 디코더가 사용 된 인코딩 형식을 식별 하는 데 도움이 됩니다.
바이트 순서 및 바이트 순서 표시에 대 한 자세한 내용은 유니코드 홈페이지에서 유니코드 표준을 참조 하세요.
Encoding 클래스는 다음과 같은 오류를 허용 합니다.
자동으로 "?" 문자로 변경 됩니다.
"최적" 문자를 사용 합니다.
사용 하 여 애플리케이션별 동작을 변경 합니다 EncoderFallback 및 DecoderFallback U + FFFD 유니코드 대체 문자로 클래스입니다.
모든 데이터 스트림 오류에 대 한 예외를 throw 해야 합니다. 앱은 해당 하는 경우 "throwonerror" 플래그를 사용 하거나 EncoderExceptionFallback 및 클래스를 사용 DecoderExceptionFallback 합니다. 최적 대체 (fallback)는 데이터 손실이 나 혼동을 일으킬 수 있고 간단한 문자 교체 보다 속도가 느릴 수 있으므로 권장 되지 않는 경우가 많습니다. ANSI 인코딩의 경우 최적의 맞춤 동작이 기본값입니다.
생성자
Encoding() |
Encoding 클래스의 새 인스턴스를 초기화합니다. |
Encoding(Int32) |
지정한 코드 페이지에 해당하는 Encoding 클래스의 새 인스턴스를 초기화합니다. |
Encoding(Int32, EncoderFallback, DecoderFallback) |
지정된 인코더 및 디코더 대체 전략을 사용하여 지정된 코드 페이지에 해당하는 Encoding 클래스의 새 인스턴스를 초기화합니다. |
속성
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 운영 체제 코드 페이지를 가져옵니다. |
메서드
Clone() |
파생 클래스에서 재정의되면 현재 Encoding 개체의 부분 복사본을 만듭니다. |
Convert(Encoding, Encoding, Byte[]) |
전체 바이트 배열의 인코딩을 변환합니다. |
Convert(Encoding, Encoding, Byte[], Int32, Int32) |
바이트 배열의 바이트 범위를 한 인코딩에서 다른 인코딩으로 변환합니다. |
CreateTranscodingStream(Stream, Encoding, Encoding, Boolean) |
Convert(Encoding, Encoding, Byte[])와 유사한, 내부 Encoding과 외부 Encoding 간에 데이터를 트랜스코딩하는 데 사용되는 Stream을 만듭니다. |
Equals(Object) |
지정한 Object가 현재 인스턴스와 같은지를 확인합니다. |
GetByteCount(Char*, Int32) |
파생 클래스에서 재정의되면 지정한 문자 포인터에서 시작하는 문자 집합을 인코딩하여 생성되는 바이트 수를 계산합니다. |
GetByteCount(Char[]) |
파생 클래스에서 재정의되면 지정한 문자 배열의 모든 문자를 인코딩하여 생성되는 바이트 수를 계산합니다. |
GetByteCount(Char[], Int32, Int32) |
파생 클래스에서 재정의되면 지정한 문자 배열의 문자 집합을 인코딩하여 생성되는 바이트 수를 계산합니다. |
GetByteCount(ReadOnlySpan<Char>) |
파생 클래스에서 재정의할 경우, 지정된 문자 범위의 문자를 인코딩하여 생성되는 바이트 수를 계산합니다. |
GetByteCount(String) |
파생 클래스에서 재정의되면 지정된 문자열의 문자를 인코딩하여 생성되는 바이트 수를 계산합니다. |
GetByteCount(String, Int32, Int32) |
파생 클래스에서 재정의할 경우, 지정된 문자열의 문자 집합을 인코딩하여 생성되는 바이트 수를 계산합니다. |
GetBytes(Char*, Int32, Byte*, Int32) |
파생 클래스에서 재정의되면 지정한 문자 포인터에서 시작하는 문자 집합을 지정한 바이트 포인터에서 시작하여 저장되는 바이트 시퀀스로 인코딩합니다. |
GetBytes(Char[]) |
파생 클래스에서 재정의되면 지정한 문자 배열의 모든 문자를 바이트 시퀀스로 인코딩합니다. |
GetBytes(Char[], Int32, Int32) |
파생 클래스에서 재정의되면 지정한 문자 배열의 문자 집합을 바이트 시퀀스로 인코딩합니다. |
GetBytes(Char[], Int32, Int32, Byte[], Int32) |
파생 클래스에서 재정의되면 지정한 문자 배열의 문자 집합을 지정한 바이트 배열로 인코딩합니다. |
GetBytes(ReadOnlySpan<Char>, Span<Byte>) |
파생 클래스에서 재정의할 경우, 지정된 읽기 전용 범위의 문자 집합을 바이트 범위로 인코딩합니다. |
GetBytes(String) |
파생 클래스에서 재정의되면 지정한 문자열의 모든 문자를 바이트 시퀀스로 인코딩합니다. |
GetBytes(String, Int32, Int32) |
파생 클래스에서 재정의할 경우, 지정된 |
GetBytes(String, Int32, Int32, Byte[], Int32) |
파생 클래스에서 재정의되면 지정한 문자열의 문자 집합을 지정한 바이트 배열로 인코딩합니다. |
GetCharCount(Byte*, Int32) |
파생 클래스에서 재정의되면 지정한 바이트 포인터에서 시작하는 바이트 시퀀스를 디코딩하여 생성되는 문자 수를 계산합니다. |
GetCharCount(Byte[]) |
파생 클래스에서 재정의되면 지정한 바이트 배열의 모든 바이트를 디코딩하여 생성되는 문자 수를 계산합니다. |
GetCharCount(Byte[], Int32, Int32) |
파생 클래스에서 재정의되면 지정한 바이트 배열의 바이트 시퀀스를 디코딩하여 생성되는 문자 수를 계산합니다. |
GetCharCount(ReadOnlySpan<Byte>) |
파생 클래스에서 재정의할 경우, 제공된 읽기 전용 바이트 범위를 디코딩하여 생성되는 문자 수를 계산합니다. |
GetChars(Byte*, Int32, Char*, Int32) |
파생 클래스에서 재정의되면 지정한 바이트 포인터에서 시작하는 바이트 시퀀스를 지정한 문자 포인터에서 시작하여 저장되는 문자 집합으로 디코딩합니다. |
GetChars(Byte[]) |
파생 클래스에서 재정의되면 지정한 바이트 배열의 모든 바이트를 문자 집합으로 디코딩합니다. |
GetChars(Byte[], Int32, Int32) |
파생 클래스에서 재정의되면 지정한 바이트 배열의 바이트 시퀀스를 문자 집합으로 디코딩합니다. |
GetChars(Byte[], Int32, Int32, Char[], Int32) |
파생 클래스에서 재정의되면 지정한 바이트 배열의 바이트 시퀀스를 지정한 문자 배열로 디코딩합니다. |
GetChars(ReadOnlySpan<Byte>, Span<Char>) |
파생 클래스에서 재정의할 경우, 지정된 읽기 전용 바이트 범위의 모든 바이트를 문자 범위로 디코딩합니다. |
GetDecoder() |
파생 클래스에서 재정의되면 인코딩된 바이트 시퀀스를 문자 시퀀스로 변환하는 디코더를 가져옵니다. |
GetEncoder() |
파생 클래스에서 재정의되면 유니코드 문자 시퀀스를 인코딩된 바이트 시퀀스로 변환하는 인코더를 가져옵니다. |
GetEncoding(Int32) |
지정한 코드 페이지 식별자와 관련된 인코딩을 반환합니다. |
GetEncoding(Int32, EncoderFallback, DecoderFallback) |
지정한 코드 페이지 식별자와 관련된 인코딩을 반환합니다. 매개 변수는 인코딩할 수 없는 문자 및 디코딩할 수 없는 바이트 시퀀스에 대한 오류 처리기를 지정합니다. |
GetEncoding(String) |
지정한 코드 페이지 이름과 관련된 인코딩을 반환합니다. |
GetEncoding(String, EncoderFallback, DecoderFallback) |
지정한 코드 페이지 이름과 관련된 인코딩을 반환합니다. 매개 변수는 인코딩할 수 없는 문자 및 디코딩할 수 없는 바이트 시퀀스에 대한 오류 처리기를 지정합니다. |
GetEncodings() |
모든 인코딩을 포함하는 배열을 반환합니다. |
GetHashCode() |
현재 인스턴스의 해시 코드를 반환합니다. |
GetMaxByteCount(Int32) |
파생 클래스에서 재정의되면 지정한 문자 수의 문자를 인코딩하여 만들 바이트 수를 계산합니다. |
GetMaxCharCount(Int32) |
파생 클래스에서 재정의되면 지정한 수의 바이트를 디코딩하여 생성되는 최대 문자 수를 계산합니다. |
GetPreamble() |
파생 클래스에서 재정의되면 사용되는 인코딩을 지정하는 바이트 시퀀스를 반환합니다. |
GetString(Byte*, Int32) |
파생 클래스에서 재정의할 때 지정된 주소에서 시작하는 지정된 바이트 수를 문자열로 디코딩합니다. |
GetString(Byte[]) |
파생 클래스에서 재정의되면 지정한 바이트 배열의 모든 바이트를 문자열로 디코딩합니다. |
GetString(Byte[], Int32, Int32) |
파생 클래스에서 재정의되면 지정한 바이트 배열의 바이트 시퀀스를 문자열로 디코딩합니다. |
GetString(ReadOnlySpan<Byte>) |
파생 클래스에서 재정의할 경우, 지정된 바이트 범위의 모든 바이트를 문자열로 디코딩합니다. |
GetType() |
현재 인스턴스의 Type을 가져옵니다. (다음에서 상속됨 Object) |
IsAlwaysNormalized() |
기본 정규화 형식을 사용하여 현재 인코딩이 항상 정규화되는지를 나타내는 값을 가져옵니다. |
IsAlwaysNormalized(NormalizationForm) |
파생 클래스에서 재정의되면 지정한 정규화 형식을 사용하여 현재 인코딩이 항상 정규화되는지를 나타내는 값을 가져옵니다. |
MemberwiseClone() |
현재 Object의 단순 복사본을 만듭니다. (다음에서 상속됨 Object) |
RegisterProvider(EncodingProvider) |
인코딩 공급자를 등록합니다. |
ToString() |
현재 개체를 나타내는 문자열을 반환합니다. (다음에서 상속됨 Object) |
확장 메서드
GetBytes(Encoding, ReadOnlySequence<Char>) |
지정된 Encoding을 사용하여 지정된 ReadOnlySequence<T>을 Byte 배열로 인코딩합니다. |
GetBytes(Encoding, ReadOnlySequence<Char>, IBufferWriter<Byte>) |
지정된 Encoding을 사용하여 지정된 ReadOnlySequence<T>을 |
GetBytes(Encoding, ReadOnlySequence<Char>, Span<Byte>) |
지정된 Encoding을 사용하여 지정된 ReadOnlySequence<T>을 |
GetBytes(Encoding, ReadOnlySpan<Char>, IBufferWriter<Byte>) |
지정된 Encoding을 사용하여 지정된 ReadOnlySpan<T>을 |
GetChars(Encoding, ReadOnlySequence<Byte>, IBufferWriter<Char>) |
지정된 Encoding을 사용하여 지정된 ReadOnlySequence<T>을 |
GetChars(Encoding, ReadOnlySequence<Byte>, Span<Char>) |
지정된 Encoding을 사용하여 지정된 ReadOnlySequence<T>을 |
GetChars(Encoding, ReadOnlySpan<Byte>, IBufferWriter<Char>) |
지정된 Encoding을 사용하여 지정된 ReadOnlySpan<T>을 |
GetString(Encoding, ReadOnlySequence<Byte>) |
지정된 Encoding을 사용하여 지정된 ReadOnlySequence<T>을 String으로 디코딩합니다. |