日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

中文乱码问题的一些总结

發布時間:2025/1/21 编程问答 23 豆豆
生活随笔 收集整理的這篇文章主要介紹了 中文乱码问题的一些总结 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

1.在程序開發中,我們常遇到中文亂碼的問題:

eg.從頁面傳來的中文,到后臺亂碼了。怎么辦

那么在接受頁面傳值的前面要加上這么一句代碼:

request.setCharacterEncoding("UTF-8");


如果還是不行:那么我們就需要轉碼了,eg.=

request.setCharacterEncoding("UTF-8");

String name = request.getParameter("username");

name = new String(name.getBytes("ISO8859-1"),"UTF-8");


2. 當你向頁面輸出內容時,如何避免中文亂碼。eg.向頁面輸出XML,HTML

應該加上

response.setCharacterEncoding("UTF-8");

response.setContentType("text/html;charset=UTF-8");

PrintWriter out = response.getWriter();

out.print("....");

out.flush();

out.close();


==========================================================================

2013-06-21-han

當我們通過URL進行傳值時,為了防止中文亂碼的問題,我們可以這樣做,

1.傳值的地方:java.net.URLEncoder.encode("中文中文");

2.接受的地方:java.net.URLDecoder.encode("接受的中文值");



可以參考的一篇文章



++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

2014-10-15-han------------httpClient等網絡請求返回值亂碼問題分析


1.java中,UTF-8 GBK,可能亂成下面的


2.java中,GBK UTF-8,可能亂碼如下


3.

對于httpClient等網絡請求亂碼的原因可能如下:

??請求方和接收方沒有統一字符。

???沒有對接收的字符做字符硬編碼,而是使用jvm默認的file.encoding的默認編碼。


4.案例展示:

logger.info("+++++++++ JDK的位數:" + System.getProperty("sun.arch.data.model"));

logger.info("file.encodin ============? encoding:"+ System.getProperty("file.encoding"));

logger.info("sun.jnu.encoding============? encoding:" +System.getProperty("sun.jnu.encoding"));


本地打印:64位,GBK,GBK??????????????? 中文不亂碼

Linux上:64位,UTF-8UTF-8????????????? 中文亂碼



5.分析原因:

java中,如果沒有指定charset的時候,比如newString(byte[] bytes),都會調用Charset.defaultCharset()的方法。所以,java中編碼中,我們應該學會指定字符編碼!

?

BufferedReader in = newBufferedReader(new FileReader(path.toString()));

換成:

BufferedReader in = newBufferedReader((new InputStreamReader(newFileInputStream(path.toString()),"utf-8")))

?

new String(decrypt(hexStr2ByteArr(strIn)));

換成:

new String(decrypt(hexStr2ByteArr(strIn)),"GBK");

?

?

new String(Base64.decodeBase64(s.getBytes()));

換成:

new String(Base64.decodeBase64(s.getBytes()),"GBK");


參考文章:

http://blog.csdn.net/raintungli/article/details/6651076

http://blog.csdn.net/zzs0829/article/details/7407598??????????? jvm默認字符編碼問題】

http://www.kankanews.com/ICkengine/archives/35323.shtml

http://blog.csdn.net/zhuyijian135757/article/details/37706437

http://blog.csdn.net/zhengqiqiqinqin/article/details/17501219

http://www.cnblogs.com/silentjesse/archive/2011/11/04/2235674.html


轉載于:https://blog.51cto.com/hanchaohan/931061

總結

以上是生活随笔為你收集整理的中文乱码问题的一些总结的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。