java乱码

转载 2015年11月18日 15:31:42

java乱码问题

编写java web的程序,不可避免都要处理编码问题,最常见的问题就是中文乱码

大概的思路就是重新编码为gbk或者gb2312,分两种情况

一是get和post形式

二是AJax 形式

第一种:GET和POST,取决于你的页面编码,如果你的页面编码为iso8859_1

使用:String str= new String(req.getParameter("str").toString().getBytes("iso8859_1"), "GBK");

或者    String str= new String(req.getParameter("str").toString().getBytes("iso8859_1"), "GB2312");

但是,这里要注意,必须保证你的页面编码也是iso8859_1的,因为,上面的代码的意思是先将你的字符串变为iso8859_1字节流,

然后再转化为GBK编码,如果你页面传过来的编码是utf-8,那么按照上面的方法就会出现:???乱码

你页面是utf-8的,就要使用如下编码:

String str= new String(req.getParameter("str").toString().getBytes("utf-8"), "GBK");

或者    String str= new String(req.getParameter("str").toString().getBytes("utf-8"), "GB2312");

总之get  post 原则很简单,页面什么编码就转化什么字节流转化编码

第二:Ajax传值

这个比较麻烦,据测试,不同的浏览器有不同的对中文编码,怎么办呢?

我们可以采用js的encodeURI()进行统一的编码,然后在后台进行统一的解码

对应的java解码代码:

str= java.net.URLDecoder.decode(str, "UTF-8");

当然,因为他是utf-8编码,所以也可以采用第一种get post 介绍的方法解码(据测试,用 String(req.getParameter("str").toString().getBytes("utf-8"), "GB2312")解码js的encodeURI()时,会出现乱码,所以还是老老实实的使用java.net.URLDecoder.decode(str, "UTF-8");)

不好意思,刚刚查了资料,上面讲的Get方式有错:

Tomcat对于GET请求并不会考虑使用request.setCharacterEncoding方法设置的编码,而会永远使用iso-8859-1编码,而这位朋友使用的正好是GET请求,因此,tomcat将会使用iso-8859-1将提交的字节转换成字符串。

所以,对于使用get方式传值的时候,统一使用String str= new String(req.getParameter("str").toString().getBytes("iso8859_1"), "GBK");当然,前提是你服务器是tomcat

java中文乱码解决问题

  • 2015年04月15日 11:26
  • 17KB
  • 下载

java解决中文乱码问题

  • 2013年05月21日 10:09
  • 73KB
  • 下载

Java 通过 JNA 调用 DLL 返回 char * 字符串乱码问题的解决

最近一个 Java 项目需要调用公司的读卡器读取卡号。C 开发提供了一个读取卡号的 DLL。     Java 调用 DLL 无非三种方法:JNI、JNA、JNative     本来 C 开...

java中文乱码

  • 2013年11月12日 21:06
  • 24KB
  • 下载

java乱码解决方法

  • 2013年08月05日 14:42
  • 90KB
  • 下载

Java读写.properties文件实例,解决中文乱码问题

一般使用到properties配置文件,一般都是在spring项目里面,直接由框架帮你读,当然,你也得考虑到编码的问题。 但是现在要是要求使用Java直接读写properties文件,就发现很多的问题...

JAVA/JSP中文乱码解决方案总结

  • 2014年06月22日 09:21
  • 478KB
  • 下载

java程序向mysql添加中文出现问号乱码

问题描述:     当在java程序中输入中文时,添加数据到mysql中,所有的文字都变成了问号(?)。如下图: java程序: mysql数据库: 解决思路:     查阅资料:     1、M...

java中文乱码的解决方法

  • 2012年09月03日 15:57
  • 38KB
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:java乱码
举报原因:
原因补充:

(最多只允许输入30个字)