中文乱码总结之JSP乱码

Posted xidapuben

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了中文乱码总结之JSP乱码相关的知识,希望对你有一定的参考价值。

一、JSP中文乱码问题

JSP页面的汉字显示为乱码,而英文和阿拉伯数字正常。

 技术分享图片

 

二、原因

汉字编码时用的字符集 与解码用的字符集不一致;所有的字符集都兼容ASCII码,所以英文数字不存在乱码。

编号

名称

单字长度

能否对汉字编码

ASCII

美国信息交换标准代码

7bit

ISO-8859-1(Latin1)

西文编码

8bit

GBK(ANSI)

汉字内码扩展规范

英文单字节,中文双字节

UTF-8

万国码

1~4个字节

注: GBK(“国标扩展”的拼音首字母)是对GB2312的扩展

三、方法

1. 通过Page指令的pageEncoding属性,指明JSP源文件使用哪个字符集编码。

2.在未告知的情况下,浏览器自动选择的解码字符集与网页的编码不一致:

l  浏览器用户手动纠正:查看->字符编码-> UTF-8或GBK

l  在JSP中使用response.setContentType(“text/html; charset=UTF-8”)明示

3. 用户通过HTML表单提交了中文,但是Tomcat、mysql的默认字符集是ISO-8859-1。

l  对应POST表单,通过request. setCharacterEncoding(charset)明确告诉Tomcat用什么字符集;

对于GET表单,修改Tomcat/conf/server.xml中HTTP Connector的属性

useBodyEncodingForURI=”true”  或者  URIEncoding=”UTF-8”

l  将MySQL的字符集,设置为UTF-8或GBK

 

结论:默认靠不住,最好明确指定UTF-8GBK

以上是关于中文乱码总结之JSP乱码的主要内容,如果未能解决你的问题,请参考以下文章

JSP中文乱码问题《转》

中文乱码总结

JSP之mysql中文乱码问题

中文乱码总结之web乱码情景

R语言中的中文乱码问题总结

Java中文乱码总结