java流處理遇到bom的問題

來源:互聯網
上載者:User

標籤:

一.簡介

BOM(Byte Order Mark)---位元組順序標記。

  類似WINDOWS內建的記事本等軟體,在儲存一個以UTF-8編碼的檔案時,會在檔案開始的地方插入三個不可見的字元(0xEF 0xBB 0xBF,即BOM)。它是一串隱藏的字元,用於讓記事本等編輯器識別這個檔案是否以UTF-8編碼。Windows 就是使用 BOM 來標記文字檔的編碼方式的。

  在用記事本之類的程式將文字檔儲存為UTF-8格式時,記事本會在檔案頭前面加上幾個不可見的字元(EF BB BF),就是所謂的BOM(Byte Order Mark)

二.遇到的問題

  在用java讀取一個json檔案時,由於對方用的UTF-8 (有BOM)編碼,讀取的內容的最前端會有幾個預設的字元。

三.解決

  使用工具類

  參考地址:http://koti.mbnet.fi/akini/java/unicodereader/, 下載其中兩個檔案:UnicodeStream和UnicodeReader

    以UnicodeReader為例:

FileInputStream fis = new FileInputStream(file);  UnicodeReader ur = new UnicodeReader(fis, "utf-8");  BufferedReader br = new BufferedReader(ur);  

  

java流處理遇到bom的問題

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.