Servlet 与 JSP 中文乱码问题小结_Jian

来源:互联网 发布:盔甲雾化器数据 编辑:程序博客网 时间:2024/05/16 11:12

Forword:

对于 Jian 这样的菜鸟,在做javaEE项目时,中文乱码的问题实在是很头疼的说。

今天就将这处女博文献给你吧,中文哥。


 

Question_1: [jsp 内容显示中文乱码]

如果在没有与任何 Servlet 交互的 jsp 页面,单纯显示内容出现中文乱码,仔细观察页面头的编码设置,如:

 

 

 

将其中的编码属性值更改为 pageEncoding="gbk" 即可正常显示 (当然也可设置为 "utf-8" 或者 "gb2312") 

建议编码方式最好保持一致性,比如 Jian 就决定一致使用 "gbk",因为字最少...

 


Question_2: [jsp 与 Servlet 间跳转出现中文乱码]

情况一: method="Post"

jsp 中form 表单的 ation="XxxServlet",method="Post"时,提交表单后往往发现中文的属性值在 Servlet 中获取后变乱码。

此时需要定位到 doPost() 方法,首先在方法内首行加上如下 code:

 

 

意思是设置 request 的编码为 "gbk",一般与 jsp 页面一致

然后,再添加 code:

 

 

意思是设置 response 的编码为 "gbk",即 Servlet 回传 jsp 时的编码,上面两段用其一即可,保持一致是关键。

 

情况二: method="Get"

jsp 中form 表单的 ation="XxxServlet",method="Get"时,提交表单后往往发现中文的属性值在 Servlet 中获取后变乱码。

此时需定位的 tomcat 的安装目录 %TOMCAT%/conf/server.xml 文件 

寻找如下代码片段:

 

 

 最后的 URIEncoding="gbk" 是 Jian 手工添加的,为的就是解决 Get 的中文乱码问题。

 


Conclusion:

简单的小结了一下 Servlet 与 JSP 比较常见的中文乱码问题,Jian 要多做技术总结,温故而知新...

 


Confusion:

考虑在 <a href="XxxServlet?flag=###">超链接</a> 中,### 换为中文貌似是有问题的,记得以前是遇到过,还没解决。