簡體   English   中英

2字節UTF-8序列的無效字節2:如何查找字符

[英]Invalid byte 2 of 2-byte UTF-8 sequence : How to find the character

我的Windows機器上有一個采用UTF-8編碼的大文本文件。 不知何故,此文件中的一個或多個字符對於UTF-8編碼無效,並給出錯誤消息“ 2字節UTF-8序列的無效字節2”。

我正在使用Windows 7,我想找到無效的字符。 我猜有一個用於UNIX的命令,但是是否有可以在Windows中使用的任何工具或實用程序或正則表達式(不需要編寫程序/代碼的東西)。

我可以使用notepad ++或PSPAD或類似的文本編輯器,或者如果有任何Windows命令,我可以創建一個批處理文件。 請提出建議。

創建一個FileReader來逐字節讀取文件。 如果當前字節看起來像2字節UTF-8的第一個字節,請讀取下一個字節,將兩個字節放入byte [2]數組中,並將其提供給新的String(array,“ UTF-8”)。 在循環中,對讀取的字節進行計數,並捕獲異常以產生位置和字節值。

您的UTF-8文件可能帶有Byte Order Mark(字節順序標記),而Java Reader通常無法識別該順序。

在記事本++中打開文件。 如果文件具有BOM表,則Notepad ++將報告“ UTF-8”而不是“ UTF-8 w / o BOM”。

您可以轉換為不帶BOM的UTF-8,或使用類似以下內容的東西: https : //stackoverflow.com/a/2905038/1554386剝離BOM。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM