UTF7Encoding.GetEncoder 메서드
정의
중요
일부 정보는 릴리스되기 전에 상당 부분 수정될 수 있는 시험판 제품과 관련이 있습니다. Microsoft는 여기에 제공된 정보에 대해 어떠한 명시적이거나 묵시적인 보증도 하지 않습니다.
유니코드 문자 시퀀스를 UTF-7로 인코딩된 바이트 시퀀스로 변환하는 인코더를 가져옵니다.
public:
override System::Text::Encoder ^ GetEncoder();
public override System.Text.Encoder GetEncoder ();
override this.GetEncoder : unit -> System.Text.Encoder
Public Overrides Function GetEncoder () As Encoder
반환
유니코드 문자 시퀀스를 UTF-7로 인코딩된 바이트 시퀀스로 변환하는 Encoder입니다.
예제
다음 코드 예제에서는 메서드를 사용하여 GetEncoder 인코더를 가져와 문자 시퀀스를 UTF-7로 인코딩된 바이트 시퀀스로 변환하는 방법을 보여 줍니다.
using namespace System;
using namespace System::Text;
using namespace System::Collections;
int main()
{
array<Char>^chars = {'a','b','c',L'\u0300',L'\ua0a0'};
array<Byte>^bytes;
Encoder^ utf7Encoder = Encoding::UTF7->GetEncoder();
int byteCount = utf7Encoder->GetByteCount( chars, 2, 3, true );
bytes = gcnew array<Byte>(byteCount);
int bytesEncodedCount = utf7Encoder->GetBytes( chars, 2, 3, bytes, 0, true );
Console::WriteLine( "{0} bytes used to encode characters.", bytesEncodedCount );
Console::Write( "Encoded bytes: " );
IEnumerator^ myEnum = bytes->GetEnumerator();
while ( myEnum->MoveNext() )
{
Byte b = safe_cast<Byte>(myEnum->Current);
Console::Write( "[{0}]", b );
}
Console::WriteLine();
}
using System;
using System.Text;
class UTF7EncodingExample {
public static void Main() {
Char[] chars = new Char[] {'a', 'b', 'c', '\u0300', '\ua0a0'};
Byte[] bytes;
Encoder utf7Encoder = Encoding.UTF7.GetEncoder();
int byteCount = utf7Encoder.GetByteCount(chars, 2, 3, true);
bytes = new Byte[byteCount];
int bytesEncodedCount = utf7Encoder.GetBytes(chars, 2, 3, bytes, 0, true);
Console.WriteLine(
"{0} bytes used to encode characters.", bytesEncodedCount
);
Console.Write("Encoded bytes: ");
foreach (Byte b in bytes) {
Console.Write("[{0}]", b);
}
Console.WriteLine();
}
}
Imports System.Text
Imports Microsoft.VisualBasic.Strings
Class UTF7EncodingExample
Public Shared Sub Main()
'Characters:
' ChrW(97) = a
' ChrW(98) = b
' ChrW(99) = c
' ChrW(768) = `
' ChrW(41120) = valid unicode code point, but not a character
Dim chars() As Char = {ChrW(97), ChrW(98), ChrW(99), ChrW(768), ChrW(41120)}
Dim bytes() As Byte
Dim utf7Encoder As Encoder = Encoding.UTF7.GetEncoder()
Dim byteCount As Integer = utf7Encoder.GetByteCount(chars, 2, 3, True)
bytes = New Byte(byteCount - 1) {}
Dim bytesEncodedCount As Integer = utf7Encoder.GetBytes(chars, 2, 3, bytes, 0, True)
Console.WriteLine("{0} bytes used to encode characters.", bytesEncodedCount)
Console.Write("Encoded bytes: ")
Dim b As Byte
For Each b In bytes
Console.Write("[{0}]", b)
Next b
Console.WriteLine()
End Sub
End Class
설명
메서드는 Decoder.GetChars 순차적 바이트 블록을 메서드와 유사한 방식으로 순차적 문자 블록으로 GetChars 변환합니다. 그러나 Decoder 호출 간에 상태 정보를 유지 관리하므로 블록에 걸쳐 있는 바이트 시퀀스를 올바르게 디코딩할 수 있습니다. Decoder또한는 데이터 블록 끝에 후행 바이트를 보존 하 고 다음 디코딩 작업에서 후행 바이트를 사용 합니다. 따라서 GetDecoder 및 GetEncoder 는 네트워크 전송 및 파일 작업에 유용 합니다. 이러한 작업은 대개 전체 데이터 스트림 대신 데이터 블록을 처리 하기 때문입니다.