首頁 > 後端開發 > 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
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板