您好,登錄后才能下訂單哦!
java中的漢字顯示問(wèn)號(hào)亂碼怎么解決?針對(duì)這個(gè)問(wèn)題,今天小編總結(jié)了這篇文章,希望能幫助更多想解決這個(gè)問(wèn)題的朋友找到更加簡(jiǎn)單易行的辦法。
為什么說(shuō)亂碼是中國(guó)程序員無(wú)法避免的話題呢?這個(gè)首先要從編碼機(jī)制上說(shuō)起,大家都是中文和英文的編碼格式不是一樣,解碼也是不一樣的,如果中國(guó)的程序員不會(huì)遇到亂碼,那么只有使用漢語(yǔ)編程。
在基于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)題。
1、操作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"));
2、在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)題了。
3、在網(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)題,一定要注重。
4、從參數(shù)中讀取中文
這正好與在網(wǎng)頁(yè)中輸出相反如:
str=new String(str.getBytes("8859_1"),"GB2312");
關(guān)于java中的漢字顯示問(wèn)號(hào)亂碼的解決方法就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,可以學(xué)到更多知識(shí)。如果覺(jué)得文章不錯(cuò),可以把它分享出去讓更多的人看到。
免責(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)容。