다음을 통해 공유


EncoderFallbackBuffer 클래스

정의

입력 문자를 인코드를 할 수 없을 경우 fallback 처리기가 인코더로 대체 문자열을 반환할 수 있는 버퍼를 제공합니다.

public ref class EncoderFallbackBuffer abstract
public abstract class EncoderFallbackBuffer
type EncoderFallbackBuffer = class
Public MustInherit Class EncoderFallbackBuffer
상속
EncoderFallbackBuffer
파생

설명

인코딩은 유니코드 문자와 인코딩된 바이트 시퀀스 간의 매핑을 정의합니다. 입력 문자를 출력 바이트 시퀀스로 변환하는 인코딩 작업은 특정 문자에 대해 매핑이 정의되지 않은 경우 실패합니다.

.NET Framework 변환을 수행할 수 없는 경우 대체라는 오류 처리 메커니즘을 제공합니다. 모든 인코더 대체 처리기는 다음을 구현해야 합니다.

  • 클래스에서 EncoderFallback 파생된 클래스로 표현되는 인코더 대체입니다.

  • 변환 작업에 문자열을 반환할 수 있는 클래스에서 EncoderFallbackBuffer 파생된 형식으로 표현되는 인코더 대체 버퍼입니다.

대체는 세 가지 전략을 사용하여 변환 실패를 처리할 수 있습니다.

  • 가장 적합한 매핑입니다. 인코더 대체 버퍼는 입력 문자에 가까운 근사치를 나타내는 문자열을 반환할 수 있습니다. .NET Framework 공용에 가장 적합한 EncoderFallbackBuffer 구현을 제공하지 않습니다.

  • 대체 기능 인코더 대체 버퍼는 문자를 인코딩할 수 없음을 나타내는 물음표("?")와 같은 문자열을 반환할 수 있습니다. .NET Framework EncoderReplacementFallbackEncoderReplacementFallbackBuffer 클래스는 공용 대체 대체 버퍼 구현을 제공합니다. 클래스의 EncoderReplacementFallback 생성자를 사용하면 대체 문자열을 정의할 수 있습니다.

  • 예외. 구현은 EncoderFallbackBuffer 문자를 인코딩할 수 없음을 나타내는 예외를 throw하고 인코딩 작업을 종료합니다. 이 경우 대체 처리기는 인코더에 문자열을 EncoderFallbackBuffer 반환하지 않지만 구현을 제공해야 합니다. .NET Framework EncoderExceptionFallbackEncoderExceptionFallbackBuffer 클래스는 문자를 인코딩할 수 없는 경우 를 EncoderFallbackException throw하는 공용 예외 대체 구현을 제공합니다.

구현의 EncoderFallbackBuffer 버퍼는 인코더 대체에 대한 응답으로 인코더에 반환될 전체 문자열을 나타냅니다. 일반적으로 구현에는 인코더로 반환할 다음 문자의 인덱스 및 반환할 나머지 문자 수와 같은 상태 정보도 포함됩니다. EncoderFallbackBuffer 는 추상 클래스이므로 파생 클래스가 최소한 다음 멤버를 구현해야 합니다.

  • 인코더가 문자를 인코딩할 수 없을 때 호출되는 오버로드된 Fallback 메서드입니다. 인코더는 인코딩할 수 없는 문자 또는 서로게이트 쌍과 입력에 있는 문자의 인덱스라는 두 가지 정보를 대체 버퍼 구현에 전달합니다. 인코더 대체 예외 처리기에서 예외는 이 메서드에서 throw됩니다. 그렇지 않으면 메서드가 대체를 제공하는 경우 또는 false 그렇지 않은 경우 를 반환 true 합니다.

  • 메서드가 GetNextChar 를 반환true하는 경우 인코더에서 반복적으로 호출되는 Fallback 메서드입니다. 연속 호출에서 처리기는 버퍼의 각 문자를 반환해야 합니다. 모든 문자를 반환하면 U+0000을 반환해야 합니다. 예외 처리기는 항상 U+0000을 반환합니다.

  • MovePrevious 버퍼의 이전 위치로 포인터를 이동하려고 시도하고 이동이 성공했는지 여부를 나타내는 메서드입니다. 예외 처리기는 항상 를 반환합니다 false.

  • Remaining 인코더로 반환할 나머지 문자 수를 나타내는 속성입니다. 예외 대체 처리기는 항상 0을 반환합니다.

생성자

EncoderFallbackBuffer()

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

속성

Remaining

파생 클래스에서 재정의될 때 처리되기 위해 남아 있는 현재 EncoderFallbackBuffer 개체의 문자 수를 가져옵니다.

메서드

Equals(Object)

지정된 개체가 현재 개체와 같은지 확인합니다.

(다음에서 상속됨 Object)
Fallback(Char, Char, Int32)

파생 클래스에서 재정의될 때 지정된 서로게이트 쌍을 처리하도록 대체 버퍼를 준비합니다.

Fallback(Char, Int32)

파생 클래스에서 재정의될 때 지정된 입력 문자를 처리하도록 대체 버퍼를 준비합니다.

GetHashCode()

기본 해시 함수로 작동합니다.

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

파생 클래스에서 재정의될 때 대체 버퍼에서 다음 문자를 검색합니다.

GetType()

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

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

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

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

파생 클래스에서 재정의될 때 GetNextChar() 메서드에 대한 다음 호출에서 데이터 버퍼의 현재 문자 위치 이전의 문자 위치에 액세스하도록 합니다.

Reset()

이 대체 버퍼와 관련된 모든 데이터 및 상태 정보를 초기화합니다.

ToString()

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

(다음에서 상속됨 Object)

적용 대상

추가 정보