다음을 통해 공유


UnicodeEncoding.Preamble 속성

정의

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

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>

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

설명

개체는 UnicodeEncoding 인코딩 프로세스에서 발생하는 바이트 시퀀스에 더할 수 있는 바이트 범위인 프리앰블을 제공할 수 있습니다. 바이트 순서 표시(코드 포인트 U+FEFF)를 사용하여 인코딩된 바이트 시퀀스를 앞에 두면 디코더가 바이트 순서와 변환 형식 또는 UTF를 결정하는 데 도움이 됩니다. 유니코드 바이트 순서 표시 (BOM)는 다음과 같이 serialize 됩니다 (16 진수).

  • 빅 엔디안 바이트 순서: FE FF

  • Little endian 바이트 순서: FF FE

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

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

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

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

중요

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

적용 대상