首頁 >Java >Java基礎 >java中string亂碼解決方法介紹

java中string亂碼解決方法介紹

尚
原創
2019-12-02 11:10:373032瀏覽

java中string亂碼解決方法介紹

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中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn