斷判文字檔的編碼Encoding方式
之前寫了一篇[找出純文字檔裡的關鍵字],但當時沒有考慮到文字檔的編碼方式,所以只是用Encoding.Default的編碼方式去讀取,這也造成其它編碼的檔案無法判讀,因為讀進來的檔案會是亂碼,所以這篇就是針對這個問題去做改善.
這篇所要講的方式也不是100%適用,因為判斷的來源是BOM(Byte order mark),所以沒有BOM的檔案就無法判別,以下就大概介紹怎麼從BOM去判斷檔案的編碼方式,其實這個方式也很簡單.


























從前4個byte就可以知道這個文字檔案的編碼方式,這也是為什麼沒有BOM的檔案就會有判斷上的困難.
另外在StreamReader也可提供此一自動判斷的功能.
StreamReader sr=new StreamReader(openfilediaplog.FullName,Encoding.Default,true);
第一個帶入的參數是檔案路徑,第二個是預設的編碼方式,第三個Boolean是使用BOM去判斷,如果無法判斷,就會依照第二個參數預設編碼去讀取.
應用參考 :
參考 :