2013-04-13 23 views
3

我正在讀取我的程序中的文本文件,其中包含某些Unicode BOM字符\ufeff/65279。這在進一步解析中提出了幾個問題。處理文本文件中的Unicode BOM的正確方法

現在我正在檢測和過濾這些字符,但想知道Java標準庫或番石榴是否有辦法更乾淨地做到這一點。

+1

在_places_? BOM應該是文件的第一個字節;否則它不是BOM。 –

+2

假設BOM位於文件的開頭,則[this](http://code.google.com/p/guava-libraries/issues/detail?id=345&colspec=ID%20Type%20Status%20Milestone%20Summary )番石榴網站的錯誤報告解釋說番石榴不處理BOM和[這個](http://stackoverflow.com/questions/9736999/how-to-remove-bom-from-an-xml-file-in- Java)文章給出瞭如何在普通Java中跳過它的想法。 –

+0

@ bmorris591,是的,在開始。謝謝。如果您將第二條評論發佈爲答案,我會將其標記爲已接受。 – missingfaktor

回答

10

在Java或者Guava中沒有內置的處理(UTF-8)BOM的方法。

目前關於Guava website關於處理Guava IO中BOM的錯誤報告。

有幾篇SO帖子(herehere)介紹瞭如何在閱讀普通Java文件時檢測/跳過BOM。

你的BOM(\ufeff)似乎是UTF-16,而根據同樣的番石榴報告與自動被Java處理。 This SO帖子似乎提示相同。

相關問題