다음을 통해 공유


UTF8Encoding.Preamble 속성

정의

개체가 하나를 제공하도록 구성된 경우 UTF-8 형식으로 인코딩된 유니코드 바이트 순서 표시를 가져옵니다.

public:
 virtual property ReadOnlySpan<System::Byte> Preamble { ReadOnlySpan<System::Byte> get(); };
public override ReadOnlySpan<byte> Preamble { get; }
member this.Preamble : ReadOnlySpan<byte>
Public Overrides ReadOnly Property Preamble As ReadOnlySpan(Of Byte)

속성 값

ReadOnlySpan<Byte>

이 개체가 하나를 제공하도록 구성된 경우 유니코드 바이트 순서 표시를 포함하는 바이트 범위입니다. 그렇지 않으면 기본 범위입니다.

설명

개체는 UTF8Encoding 인코딩 프로세스에서 발생하는 바이트 시퀀스에 접두사를 지정할 수 있는 바이트 범위인 프리앰블을 제공할 수 있습니다. 바이트 순서 표시(코드 포인트 U+FEFF)를 사용하여 인코딩된 바이트 시퀀스를 앞에 두면 디코더가 바이트 순서와 변환 형식 또는 UTF를 결정하는 데 도움이 됩니다. BOM(유니코드 바이트 순서 표시)은 0xEF 0xBB 0xBF 직렬화됩니다. 유니코드 표준은 UTF-8로 인코딩된 스트림에 BOM 사용을 요구하거나 권장하지 않습니다.

다음과 같은 방법으로 유효한 BOM인 Preamble 개체를 인스턴스화 UTF8Encoding 할 수 있습니다.

  • 속성에서 반환된 UTF8Encoding 개체를 검색합니다 Encoding.UTF8 .

  • 매개 변수를 사용하여 UTF8Encoding 생성자를 encoderShouldEmitUTF8Identifier 호출하고 해당 값을 으로 설정합니다 true.

다른 UTF8Encoding 모든 개체는 유효한 BOM이 아닌 기본 범위를 반환하도록 구성됩니다.

BOM은 태그가 지정되지 않았거나 부적절하게 태그가 지정된 웹 데이터 또는 비즈니스에 국제적인 문제가 없을 때 저장된 임의 텍스트 파일과 같이 인코딩에 대한 참조가 손실된 파일에 대한 인코딩을 거의 확실하게 식별합니다. 데이터가 일관되고 적절하게 태그가 지정된 경우 사용자 문제를 방지할 수 있는 경우가 많습니다.

인코딩 유형을 제공 하는 표준의 경우 BOM은 다소 중복 됩니다. 그러나 서버에서 올바른 인코딩 헤더를 보내는 데 사용할 수 있습니다. 또는 인코딩이 손실 되는 경우 대체 방법으로 사용할 수 있습니다.

BOM을 사용 하는 경우 몇 가지 단점이 있습니다. 예를 들어 BOM을 사용 하는 데이터베이스 필드를 제한 하는 방법을 알고 있는 것은 어려울 수 있습니다. 파일의 연결은 예를 들어 불필요 한 문자가 데이터 중간에 종료 될 수 있는 방식으로 파일을 병합 하는 경우에도 문제가 될 수 있습니다. 그러나 몇 가지 단점에도 불구 하 고 BOM을 사용 하는 것이 좋습니다.

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

중요

인코딩된 바이트가 파일 또는 스트림으로 저장될 때 제대로 디코딩되도록 하려면 인코딩된 바이트 스트림의 시작 부분에 프리앰블을 접두사로 지정할 수 있습니다. 메서드는 GetBytes 인코딩된 바이트 시퀀스에 BOM을 앞에 두지 않습니다. 적절한 바이트 스트림의 시작 부분에 BOM을 제공하는 것은 개발자의 책임입니다.

적용 대상