我們的一個提供程序有時會發送標記爲UTF-8編碼文檔但包含未包含在UTF-8字符集中的字符的XML Feed。這將導致解析器拋出一個異常,停止建設的DOM對象,當遇到這些字符:修復XML文件中的錯誤編碼
DocumentBuilder.parse(ByteArrayInputStream bais)
拋出以下異常:
org.xml.sax.SAXParseException: Invalid byte 2 of 2-byte UTF-8 sequence.
有沒有一種方法來「捕捉」這些問題早並避免例外(即查找並從流中刪除這些字符)?我正在尋找的是「盡力而爲」類型的錯誤編碼文檔的後備。正確的解決方案顯然是從源頭上解決問題,並確保只交付正確的文檔,但如果不可能,那麼最好的方法是什麼?
感謝您的提示。它避免了這個異常,不幸的是,它並沒有幫到我太多,因爲它看起來非法的字符在我提取(和需要)的標識符字符串裏面,並且現在得到了錯誤的編碼。我想我只能等待內容提供商解決他們的錯誤。 – Burre 2008-10-20 09:29:01