Tomcat 中 jsp 中文乱码显示处理解决方案

关注
Tomcat 中 jsp 中文乱码显示处理解决方案www.shan-machinery.com

原地址: http://blog.csdn.net/joyous/article/details/1504274html

 

初学JSP,尤为是Tomcat环境(GlassFish默认UTF-8,则不存在此类问题),常常会由于中文汉字字符集设置问题致使中文乱码,本文就这一问题提出解决方案,解决中文乱码问题,供各位参考,我采用的方案是统一字符集至UTF-8,同时避免GB2312所带来的中文字符集不够用的隐患,需注意的地方有三点,默认状况下是英文字符集。前端

一、Tomcat 的 server.xml 文件,设置服务器端口工做方式java

二、Servlet 和 JavaBean 对字符串字符集处理的统一tomcat

三、JSP页面的字符集统一服务器

完成这三点统一,中文想乱码都难,若是使用MySQL的话,数据表也须要作UTF-8统一。jsp

 

修改Tomcat的server.xml文件,该文件位于 tomcat/conf,红色部分为添加部分,也就是当前使用的HTTP端口的链接方式的设置。函数

找到Connector 标签,使 Tomcat 服务器以UTF-8模式进行工做,从底层对乱码进行处理,修改以下:post

其它应用服务器例如GlassFish默认支持utf-8,服务器自己无需设置,只须代码上注意便可。

 

运行代码内设置以下:

JavaBean 和 Servlet 内须要处理中文的地方以前,或者全部函数最前端加上

request.setCharacterEncoding ("UTF-8");

response.setCharacterEncoding ("UTF-8");

避免在 JavaBean 和 Servlet 内出现汉字乱码。

 

JSP代码中的 JAVA 字符编码设置,在页面上对乱码进行处理。

 

 

红色为制定JSP处理字符采用UTF-8编码处理方式。

 

JSP内JAVA代码设定接收参数为UTF-8编码

 

JSP 内 HTML 头的编码设置,页面处理以UTF-8,避免显示乱码。

    Note Page

 

 

……

……

 红色部分UTF-8制定HTML页面使用的编码方式

 

Please Input Your Name:

 

接收代码以下:

 

 

采用get方式略有不一样,若只采用以上设定,遇中文参数,因编码不一样,会致使部分文字信息丢失,因此在提交前务必进行编码,这里用到两个函数java.net.URLDecoder.decode 和java.net.URLDecoder.encode,分别是编码和解码。

 

 

做为参数传递的中文,由 java.net.URLEncoder.encode函数将要发送的变量解析为16进制数字编码,进行URL传递,接收代码以下:

 

 

由此,得到参数后的 str 内将是正确的中文信息,彻底避免了乱码的显示。

 

可用 java.net.URLDecoder.decode 函数

例如

 

    完毕将完美解决中文字符参数乱码问题。

https://www.shan-machinery.com