기본 형식 인코딩
업데이트: 2007년 11월
문자는 여러 가지 문자 스키마 또는 코드 페이지를 사용하여 나타낼 수 있는 추상 엔터티입니다. 예를 들어, 유니코드 UTF-16 인코딩에서는 문자를 16비트 정수의 시퀀스로 나타내는 반면, 유니코드 UTF-8에서는 동일한 문자를 8비트 바이트의 시퀀스로 나타냅니다. 공용 언어 런타임에서는 유니코드 UTF-16(Unicode Transformation Format, 16비트 인코딩 형식)을 사용하여 문자를 나타냅니다.
공용 언어 런타임을 목적으로 하는 응용 프로그램에서는 인코딩을 사용하여 네이티브 문자 스키마의 문자 표현을 다른 스키마에 매핑합니다. 응용 프로그램에서는 디코딩을 사용하여 네이티브가 아닌 스키마의 문자를 네이티브 스키마에 매핑합니다. 다음 표에서는 System.Text 네임스페이스에서 문자를 인코딩 및 디코딩하는 데 가장 일반적으로 사용되는 클래스 목록을 보여 줍니다.
문자 스키마 |
클래스 |
설명 |
---|---|---|
ASCII 인코딩 |
ASCII 문자로/부터 변환합니다. |
|
다중 인코딩 |
Convert 메서드에 지정된 다양한 인코딩으로/부터 문자를 변환합니다. |
|
UTF-16 유니코드 인코딩 |
UTF-16 인코딩으로/부터 변환합니다. 이 스키마에서는 문자를 16비트 정수로 나타냅니다. |
|
UTF-8 유니코드 인코딩 |
UTF-8 인코딩으로/부터 변환합니다. 이 가변 길이 인코딩 체계에서는 1-4 바이트를 사용하여 문자를 나타냅니다. |
다음 코드 예제에서는 ASCIIEncoding.GetBytes 메서드를 사용하여 유니코드 문자열을 바이트 배열로 변환합니다. 배열의 각 바이트는 문자열의 해당 위치에 있는 문자에 대한 ASCII 값을 나타냅니다.
Dim MyString As String = "Encoding String."
Dim AE As New ASCIIEncoding()
Dim ByteArray As Byte() = AE.GetBytes(MyString)
Dim x as Integer
For x = 0 To ByteArray.Length - 1
Console.Write("{0} ", ByteArray(x))
Next
string MyString = "Encoding String.";
ASCIIEncoding AE = new ASCIIEncoding();
byte[] ByteArray = AE.GetBytes(MyString);
for(int x = 0;x <= ByteArray.Length - 1; x++)
{
Console.Write("{0} ", ByteArray[x]);
}
이 예제에서는 다음을 콘솔에 표시합니다. 바이트 69는 E 문자에 대한 ASCII 값을 나타내고 바이트 110은 n 문자에 대한 ASCII 값을 나타내는 방식입니다.
69 110 99 111 100 105 110 103 32 83 116 114 105 110 103 46
다음 코드 예제에서는 ASCIIEncoding 클래스를 사용하여 앞의 바이트 배열을 문자 배열로 변환합니다. GetChars 메서드는 바이트 배열을 디코딩하는 데 사용됩니다.
Dim AE As New ASCIIEncoding()
Dim ByteArray As Byte() = { 69, 110, 99, 111, 100, 105, 110, 103, 32, 83, 116, 114, 105, 110, 103, 46 }
Dim CharArray As Char() = AE.GetChars(ByteArray)
Dim x As Integer
For x = 0 To CharArray.Length - 1
Console.Write(CharArray(x))
Next
ASCIIEncoding AE = new ASCIIEncoding();
byte[] ByteArray = { 69, 110, 99, 111, 100, 105, 110, 103, 32, 83, 116, 114, 105, 110, 103, 46 };
char[] CharArray = AE.GetChars(ByteArray);
for(int x = 0;x <= CharArray.Length - 1; x++)
{
Console.Write(CharArray[x]);
}
앞의 코드에서는 Encoding String.이라는 텍스트를 콘솔에 표시합니다.