다음을 통해 공유


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)

속성 값

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

설명

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

  • Big endian 바이트 순서: FE FF

  • Little endian 바이트 순서: FF FE

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

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

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

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

중요합니다

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

적용 대상