java string亂碼解決方法:
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 類來創建和操作字符串。String 類有 11 種構造方法,這些方法提供不同的參數來初始化字符串,String 類是不可改變的,所以你一旦創建了 String 對象,那它的值就無法改變了,如果需要對字符串做很多修改,那么應該選擇使用 StringBuffer & StringBuilder 類。
以上就是java中string亂碼解決方法介紹的詳細內容,更多請關注億速云其它相關文章!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。