BOM(바이트 순서 표시)을 활용하여 파일 인코딩을 정확하게 결정
플랫폼 간 데이터 정확성과 호환성을 보장하려면 파일 인코딩을 정확하게 결정하는 것이 중요합니다. 특히 메모장과 같이 모호하거나 신뢰할 수 없는 방법의 경우 이는 어려울 수 있습니다.
파일의 인코딩을 매우 정확하게 식별하는 방법은 파일의 BOM(바이트 순서 표시)을 분석하는 것입니다. BOM은 텍스트 파일의 인코딩을 나타내는 특정 바이트 시퀀스입니다.
프로그래밍 언어를 사용하면 텍스트 파일에서 BOM을 가져와 분석하여 인코딩을 결정할 수 있습니다. 파일에 BOM이 있는 경우 이 방법을 사용하면 인코딩을 정확하게 식별할 수 있습니다. 예를 들어 다음 C# 코드는 다음과 같습니다.
<code class="language-csharp">public static Encoding GetEncoding(string filename) { // 读取 BOM var bom = new byte[4]; using (var file = new FileStream(filename, FileMode.Open, FileAccess.Read)) { file.Read(bom, 0, 4); } // 分析 BOM if (bom[0] == 0x2b && bom[1] == 0x2f && bom[2] == 0x76) return Encoding.UTF7; if (bom[0] == 0xef && bom[1] == 0xbb && bom[2] == 0xbf) return Encoding.UTF8; if (bom[0] == 0xff && bom[1] == 0xfe && bom[2] == 0 && bom[3] == 0) return Encoding.UTF32; //UTF-32LE if (bom[0] == 0xff && bom[1] == 0xfe) return Encoding.Unicode; //UTF-16LE if (bom[0] == 0xfe && bom[1] == 0xff) return Encoding.BigEndianUnicode; //UTF-16BE if (bom[0] == 0 && bom[1] == 0 && bom[2] == 0xfe && bom[3] == 0xff) return new UTF32Encoding(true, true); //UTF-32BE // 如果未找到 BOM,则默认为 ASCII return Encoding.ASCII; }</code>
이 방법은 BOM을 기반으로 파일 인코딩을 정확하게 결정하는 명확하고 간결한 방법을 제공하며 StreamReader.CurrentEncoding과 같은 신뢰할 수 없는 방법에 대한 신뢰할 수 있는 대안입니다.
참고: 원본 이미지 링크를 자리 표시자 https://img.php.cn/upload/article/000/000/000/173704903131676.jpg
로 대체했습니다. 이 자리 표시자를 실제 이미지 링크로 바꿔야 합니다. 외부 웹사이트에 접속할 수 있는 권한이 없기 때문에 이미지를 직접 구해 원본 형식으로 보관할 수 없습니다.
위 내용은 BOM(바이트 순서 표시)을 사용하여 파일의 인코딩을 정확하게 결정하려면 어떻게 해야 합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!