锁定老帖子 主题:JSP乱码常用解决方法
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
作者 | 正文 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
发表时间:2011-06-03
最后修改:2011-06-24
一、先来看一些有趣的字符编码转换
二、Encoding与contentType乱码 1,JSP文件中的Encoding与contentType的区别: Encoding:该JSP文件保存时所用的编码。 contentType:该文件从服务器发送给客户端时的编码(gbk,utf-8均可正确显示)。 两种编码可以不同。 常见设置: Encoding="utf-8" contentType="text/html;charset=utf-8" 2,初学者可能喜欢用记事本、EditPlus进行编写JSP文件,在windows系统上默认保存格式是gbk的,如果Encoding设置成了utf-8,那就会有乱码。解决办法就是先打开记事本,然后以UTF-8的格式打开JSP文件,删除掉乱码即可;或拷贝到MyEclipse中进行修改。
三、contentType导致form,herf提交乱码
和第一张表对应着看,是不是发现了一些规律! (一)FORM FORM表单的编码方式与JSP中contentType的设置有关,GBK编码成GBK,UTF-8编码成UTF-8。这时,当我们在后台取回表单数据的时候,要对应的设置与表单所在页面的contentType格式。简单点说:格式要一一对应。 解决方案: request.setCharacterEncoding("GBK");或者 request.setCharacterEncoding("UTF-8"); (二)超链接 那么对于超链接呢?对应着看第一张表的倒数第二行。我们传递的数据按new String(str.getBytes(),"gbk")方式进行了解码。如果前台的contentType正好是GBK,那么提交到后台的数据无需解码了。但如果是UTF-8那就要还原成我们原来的编码格式(被解码过了)。 String str = new String(str1.getBytes("gbk")); 这样就可以取回原来的值。 这里值得一提的是: String str1 = new String(str.getBytes("gbk")); //这是按GBK方式编码 String str2 = new String(str1.getBytes(),"gbk"); //这是按GBK方式解码 所以大家要记牢两者的区别,以免在解码的时候又编码了一次,很难被发现。 实际上,在处理这类URL自带中文的情况下,一般使用 java.net.URLEncoder.encode(str, "utf-8")或JS中的encodeURI('cn中国') 进行URL编码,这样我们的后台程序可以使用同一种方法进行解码了。 例如,常见的用户登录失败,我们给用户一个提示信息: String url = java.net.URLEncoder.encode("login.jsp?error=密码不正确","utf-8"); 这样在前台页面:
request.setCharacterEncoding("UTF-8"); 之后就可以取出error中的内容,直接显示了。 四、AJAX乱码
有了上面的解决超链接方式乱码的经验,这个解决起来就简单了。请参看上面所述超链接乱码解决方案。
五、JQuery中的AJAX乱码
还是JQuery厚道啊!汉字已经按FORM表单的URL进行了编码,解决起来很容易。请参见FORM表单乱码解决方案。
六、MYSQL乱码 解决MYSQL乱码有三点,说一下: 1,在安装的时候选那个“日本话”那个选项,这样才能支持中文。 2,请不要使用navicat来创建数据库,它默认的还是拉丁文。请手写SQL建库语句,并设置编码。 3,创建表的时候要选UTF8,另外字段也要选UTF8编码 声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
返回顶楼 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
发表时间:2011-07-21
比较全,收.藏了,用到时看,多谢楼主分享
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
返回顶楼 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
发表时间:2011-08-20
比较常见的问题,感谢 分享
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
返回顶楼 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
发表时间:2011-11-21
谢谢LZ的分享、学习了
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
返回顶楼 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
浏览 3564 次