平時我們開發中傳輸的數據用的最多的是String,我們在使用時往往new String(),沒有人去關注的存儲編碼,亂碼問題的本質就是由於不同編碼的字節(byte)轉化時無法正確轉化
String 是具有編碼格式的,
- String 類可以按照編碼格式存儲byte(字節)在磁盤中,不同的編碼格式存儲到磁盤中的字節(byte)是不同的,
- 磁盤中的字節(byte)與String 相互轉化過程中如果採用的編碼不一樣很可能出現亂碼的
我們在創建新對象時,new String() ,是有默認編碼的,調用了java.nio.charset.Charset.defaultCharset() 方法,二者default 值可以通過及方式設置
所以我們在new String()時要注意編碼問題,如果在一個系統中是沒有問題的,但多個系統中可能會出現中文亂碼的問題,亂碼大多數都是轉碼過程中出現了問題,
是可以轉碼解決的
new String(str1.getByte("srcCharSet"),"desCharSet") 將srcCharSet存儲的字節(byte)轉化爲desCharSet存儲的字節