前言:
Java的編程中,經(jīng)常會碰到漢字的處里及顯示的問題,比如一大堆亂碼或問號。
這是因為JAVA中默認的編碼方式是UNICODE,而中國人通常使用的文件和DB都是基于GB2312或者BIG5等編碼,故會出現(xiàn)此問題。
如果文件一打開就亂碼,可以通過修改軟件的編碼或者修改文件的編碼就可以覺得這個問題。而若是在java的通信中,或者數(shù)據(jù)庫操作之類的其他軟件進程通信時,就容易產(chǎn)生亂碼。
1、在網(wǎng)頁中輸出中文。
JAVA在網(wǎng)絡(luò)傳輸中使用的編碼是”ISO-8859-1”,故在輸出時需要進行轉(zhuǎn)化,如:
1
2
|
String str= "中文" ; str= new String(str.getBytes( "GB2312" ), "8859_1" ); |
但假如在編譯程序時,使用的編碼是“GB2312”,且在中文平臺上運行此程序,不會出現(xiàn)此問題,一定要注重。
2、從參數(shù)中讀取中文
這正好與在網(wǎng)頁中輸出相反如:
1
|
str= new String(str.getBytes( "8859_1" ), "GB2312" ); |
3、操作DB中的中文問題
一個較簡單的方法是:在“控制面扳”中,把“區(qū)域”設(shè)置為“英語(美國)”。假如還會出現(xiàn)亂碼,還可進行如下設(shè)置:
取中文時:str=new String(str.getBytes("GB2312"));
向DB中輸入中文:str=new String(str.getBytes("ISO-8859-1"));
4、在jsp中的中文解決:
在“控制面扳”中,把“區(qū)域”設(shè)置為“英語(美國)”.
在JSP頁面中加入:
假如還不行正常顯示,則還要進行下面的轉(zhuǎn)換:
如:name=new String(name.getBytes("ISO-8859-1"),"GBK");
就不會出現(xiàn)中文問題了。
感謝閱讀,希望能幫助到大家,謝謝大家對本站的支持!
原文鏈接:http://blog.csdn.net/u013007900/article/details/50426759