我只是在從文件中讀取一些數據作爲字節流的過程中,我剛剛遇到一些unicode字符串,我不知道如何處理。Java unicode字節解析
每個字符都使用兩個字節,僅在第一個似乎到包含實際數據,因此,例如字符串「信任」被存儲在文件中:
0x74 0x00(t) 0x72 0x00(r) ...and so on
一般情況下我只用一個正則表達式用零代替零,因此刪除空白。但是,文件內的單詞之間的空格是通過使用0x00 0x00
來實現的,所以試圖做一個簡單的String'replaceAll'就會讓它變得有點麻煩。
我已經嘗試過使用字符串編碼集,比如'ISO-8859-1'和'UTF-8/16',但每次我都要用空格結束。
我沒有創建一個簡單的正則表達式來去除雙零個十六進制值,這就是:
new String(bytes).replaceAll("[\\00]{2,},"");
但這顯然只適用於雙零,我真的很想來取代單一的零一無所有,以及具有實際的ASCII/Unicode空格字符的雙零。
我可以發誓,其中一個Java字符串格式設置處理這種事情,但我可能是錯的。那麼我是否應該創建一個正則表達式來去除零,或者Java是否提供了實現它的機制?
謝謝
啊,是的,就是這樣,我無法找到這個。這回答了我的問題並修復了它。非常感謝您的快速回復,我會盡快點擊接受。感謝Esailija! – Tony