中文乱码问题的一些总结
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-8,UTF-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
總結
以上是生活随笔為你收集整理的中文乱码问题的一些总结的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: WIN7系统激活后无法正常启动
- 下一篇: 关于win7的64位和32位有什么不同性