java string亂碼解決方法:(建議:java影片教學)
System.out.println(str); String str1 = new String(str.getBytes("ISO-8859-1"), "utf-8"); System.out.println(str1); String str2 = new String(str.getBytes("gb2312"), "utf-8"); System.out.println(str2); String str3 = new String(str.getBytes("gbk"), "utf-8"); System.out.println(str3);
str.getBytes(charsetName);charsetName是原本字元的編碼
"utf-8"是將str轉換為utf-8編碼。
new String(str.getBytes(“gbk”),“iso8859-1”)時
第一步:byte[] bytes=str.getBytes(“gbk”)
告訴java虛擬機器將中文以「gbk」的方式轉換為位元組數組。一個漢字對應兩個位元組。
對應的第二步便是:
String s=new String(bytes,“iso8859-1”)時,此時是將每1位元組組裝成一個“?” 。此時的s是若干個“?”,我們可以把“?”看做是一種特殊的漢字,它代表的訊息並沒有損失是可以還原回來的。
java.lang.String.getBytes(String charsetName) 方法編碼將此String使用指定的字元集的位元組序列,並將結果儲存到一個新的位元組陣列。
宣告
以下是java.lang.String.getBytes()方法的宣告
public byte[] getBytes(String charsetName) throws UnsupportedEncodingException
參數:charset -- 這是一個支援的字元集的名稱。
傳回值:此方法傳回得到的位元組數組。
new String(byte[],decode)方法
與getBytes相對的,可以透過new String(byte[], decode)的方式來還原這個"中"字,
這個new String(byte[],decode)實際上是使用指定的編碼decode來將byte[]解析成字串.
異常:UnsupportedEncodingException -- 如果不支援指定的字元集。
更多java知識請關注java基礎教學欄。
以上是java中string亂碼解決方法介紹的詳細內容。更多資訊請關注PHP中文網其他相關文章!