> 백엔드 개발 > C++ > C#에서 파일의 인코딩을 정확하게 판별하려면 어떻게 해야 합니까?

C#에서 파일의 인코딩을 정확하게 판별하려면 어떻게 해야 합니까?

Linda Hamilton
풀어 주다: 2025-01-17 01:41:08
원래의
207명이 탐색했습니다.

How Can I Accurately Determine a File's Encoding in C#?

C#에서 파일 인코딩을 정확하게 식별

올바른 데이터 처리를 위해서는 파일의 인코딩을 정확하게 결정하는 것이 중요합니다. StreamReader.CurrentEncoding은 때때로 실패하지만 보다 강력한 방법은 BOM(바이트 순서 표시)을 분석하는 것입니다. 메모장에서 사용되는 것과 유사한 이 접근 방식은 더 높은 정밀도를 제공합니다.

BOM(바이트 순서 표시) 활용

BOM이 있으면 인코딩 식별에 큰 도움이 됩니다. 다음 BOM 값은 특정 인코딩에 해당합니다.

  • UTF-7: 0x2b, 0x2f, 0x76
  • UTF-8: 0xef, 0xbb, 0xbf
  • UTF-32LE: 0xff, 0xfe, 0x00, 0x00
  • UTF-16LE: 0xff, 0xfe
  • UTF-16BE: 0xfe, 0xff
  • UTF-32BE: 0x00, 0x00, 0xfe, 0xff

BOM이 감지되지 않으면 오류 방지를 위해 코드가 기본적으로 ASCII로 설정됩니다.

BOM 분석을 위한 C# 코드 구현

다음 C# 코드는 BOM 기반 인코딩 감지를 보여줍니다.

<code class="language-csharp">public static Encoding GetEncoding(string filename)
{
    byte[] bom = new byte[4];
    using (FileStream file = new FileStream(filename, FileMode.Open, FileAccess.Read))
    {
        file.Read(bom, 0, 4);
    }

    // BOM analysis logic (see complete implementation below)

    return Encoding.ASCII; // Default to ASCII if no BOM is found
}</code>
로그인 후 복사

이 함수는 파일의 초기 바이트를 효율적으로 읽고 이를 사용하여 인코딩을 결정합니다. 그런 다음 BOM 분석의 완전한 구현이 이어지며 각 BOM 케이스를 개별적으로 처리하여 적절한 Encoding 객체를 반환합니다. 이를 통해 다양한 텍스트 파일 형식에서 안정적인 인코딩 감지가 보장됩니다.

위 내용은 C#에서 파일의 인코딩을 정확하게 판별하려면 어떻게 해야 합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
저자별 최신 기사
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿