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
本文转自韩立伟 51CTO博客,原文链接:http://blog.51cto.com/hanchaohan/931061,如需转载请自行联系原作者