溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

如何解決java中string的亂碼問題

發(fā)布時(shí)間:2020-06-21 15:21:51 來源:億速云 閱讀:1316 作者:元一 欄目:編程語言

 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轉(zhuǎn)換為utf-8編碼。

new String(str.getBytes(“gbk”),“iso8859-1”)時(shí)

第一步:byte[] bytes=str.getBytes(“gbk”)

告訴java虛擬機(jī)將中文以“gbk”的方式轉(zhuǎn)換為字節(jié)數(shù)組。一個(gè)漢字對(duì)應(yīng)兩個(gè)字節(jié)。

對(duì)應(yīng)的第二步便是:

String s=new String(bytes,“iso8859-1”)時(shí),此時(shí)是將每1字節(jié)組裝成一個(gè)“?” 。此時(shí)的s是若干個(gè)“?”,我們可以把“?”看做是一種特殊的漢字,它代表的信息并沒有損失是可以還原回來的。

java.lang.String.getBytes(String charsetName) 方法編碼將此String使用指定的字符集的字節(jié)序列,并將結(jié)果存儲(chǔ)到一個(gè)新的字節(jié)數(shù)組。

聲明

以下是java.lang.String.getBytes()方法的聲明

public byte[] getBytes(String charsetName) throws UnsupportedEncodingException

參數(shù):charset -- 這是一個(gè)支持的字符集的名稱。

返回值:此方法返回得到的字節(jié)數(shù)組。

new String(byte[],decode)方法

與getBytes相對(duì)的,可以通過new String(byte[], decode)的方式來還原這個(gè)"中"字,

這個(gè)new String(byte[],decode)實(shí)際是使用指定的編碼decode來將byte[]解析成字符串.

異常:UnsupportedEncodingException -- 如果不支持指定的字符集。

補(bǔ)充:

字符串廣泛應(yīng)用 在 Java 編程中,在 Java 中字符串屬于對(duì)象,Java 提供了 String 類來創(chuàng)建和操作字符串。String 類有 11 種構(gòu)造方法,這些方法提供不同的參數(shù)來初始化字符串,String 類是不可改變的,所以你一旦創(chuàng)建了 String 對(duì)象,那它的值就無法改變了,如果需要對(duì)字符串做很多修改,那么應(yīng)該選擇使用 StringBuffer & StringBuilder 類。

以上就是java中string亂碼解決方法介紹的詳細(xì)內(nèi)容,更多請(qǐng)關(guān)注億速云其它相關(guān)文章!

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI