文本文件以EF BB開頭,使用UTF8讀取

  這幾天自己寫了個工具,處理代碼。測試時發現,有的文件處理錯誤。

  直接打開文件,也沒問題。嗯?吾用UltraEdit打開,轉移到16進制格式,看到形狀有三個字節:EF FF BF(應該是)。使用FileReader讀取,得到的是FEFF,而且說編碼是GBK。

  這個編碼咱玩得多的了,很熟悉。可是奇怪的事情發生了,吾寫入文件時就籌碼。於是反複分析,最後懷疑還是編碼集錯了。於是:

  吾將編碼改爲UTF8,再寫入文件就對了。

  寫怎麼辦?吾乾脆跳過這幾個字符。

 

  考慮到其他文件可能是GBK,於是吾先用GBK讀取,然後看第一個字節是不是0xFEFF。

  如果是,轉UTF8再次讀取。

  如果不是,直接處理。

  結果所有代碼都處理正確。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章