2010-03-15

Java中文字串長度

需求:用txt上傳資料,一行一筆資料,每一筆資料使用固定寬度,不足部份補空白。

問題:讀入檔案後得先檢查每一行總長度是否相符,在Editplus行末游標顯示Col398,表示該行應為397字元,但string.length()卻顯示393字元。

原因:中文字關係!Java將每個中文字當成一個字,但是Editplus將中文字當成兩個字。

解法:要比對txt檔與Java字串的長度,得用string.getBytes("想要的編碼").length,若不指定編碼,會用預設的UTF-8,就是每個中文字為3 Bytes,若指定為MS950,則是2 Bytes!

沒有留言:

張貼留言