C# 中準確辨識文件編碼
準確地確定文件的編碼對於正確的資料處理至關重要。 雖然 StreamReader.CurrentEncoding
有時會失敗,但更可靠的方法是分析位元組順序標記 (BOM)。這種方法與記事本中使用的方法類似,可以提供更高的精確度。
利用位元組順序標記 (BOM)
BOM 的存在極大地有助於編碼識別。 以下 BOM 值對應於特定編碼:
如果未偵測到 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中文網其他相關文章!