新聞中心
今天就跟大家聊聊有關(guān)java中出現(xiàn)問(wèn)號(hào)亂碼的原因和解決方法,可能很多人都不太了解,為了讓大家更加了解,小編給大家總結(jié)了以下內(nèi)容,希望大家根據(jù)這篇文章可以有所收獲。
在基于Java的編程中,經(jīng)常會(huì)碰到漢字的處里及顯示的問(wèn)題,比如一大堆亂碼或問(wèn)號(hào)。
這是因?yàn)镴AVA中默認(rèn)的編碼方式是UNICODE
,而中國(guó)人通常使用的文件和DB都是基于GB2312
或者BIG5
等編碼,故會(huì)出現(xiàn)此問(wèn)題。下面是關(guān)于此類問(wèn)題的總結(jié)。
1、在網(wǎng)頁(yè)中輸出中文
JAVA在網(wǎng)絡(luò)傳輸中使用的編碼是"ISO-8859-1
",故在輸出時(shí)需要進(jìn)行轉(zhuǎn)化,如:
String str="中文"; str=new String(str.getBytes("GB2312"),"8859_1");
但假如在編譯程序時(shí),使用的編碼是“GB2312
”,且在中文平臺(tái)上運(yùn)行此程序,不會(huì)出現(xiàn)此問(wèn)題,一定要注重。
2、從參數(shù)中讀取中文
這正好與在網(wǎng)頁(yè)中輸出相反如:
str=new String(str.getBytes("8859_1"),"GB2312");
3、操作DB中的中文問(wèn)題
一個(gè)較簡(jiǎn)單的方法是:在“控制面扳”中,把“區(qū)域”設(shè)置為“英語(yǔ)(美國(guó))”。假如還會(huì)出現(xiàn)亂碼,還可進(jìn)行如下設(shè)置:
取中文時(shí):
str=new String(str.getBytes("GB2312"));
向DB中輸入中文:
str=new String(str.getBytes("ISO-8859-1"));
4、在jsp中的中文解決
在“控制面扳”中,把“區(qū)域”設(shè)置為“英語(yǔ)(美國(guó))”.
在JSP頁(yè)面中加入:
假如還不正常顯示,則還要進(jìn)行下面的轉(zhuǎn)換:
如:
name=new String(name.getBytes("ISO-8859-1"),"GBK");
就不會(huì)出現(xiàn)中文問(wèn)題了。
看完上述內(nèi)容,你們對(duì)java中出現(xiàn)問(wèn)號(hào)亂碼的原因和解決方法有進(jìn)一步的了解嗎?如果還想了解更多相關(guān)內(nèi)容,歡迎關(guān)注創(chuàng)新互聯(lián)成都網(wǎng)站設(shè)計(jì)公司行業(yè)資訊頻道,感謝各位的閱讀。
另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)scvps.cn,海內(nèi)外云服務(wù)器15元起步,三天無(wú)理由+7*72小時(shí)售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國(guó)服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡(jiǎn)單易用、服務(wù)可用性高、性價(jià)比高”等特點(diǎn)與優(yōu)勢(shì),專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場(chǎng)景需求。
當(dāng)前名稱:java中出現(xiàn)問(wèn)號(hào)亂碼的原因和解決方法-創(chuàng)新互聯(lián)
本文地址:http://www.ef60e0e.cn/article/dgggjj.html