Ytl's Java Blog

厚积而薄发---每一天都是一个全新的开始
  BlogJava :: 首页 :: 新随笔 :: 联系 :: 聚合  :: 管理

JSP中乱码解决方案

Posted on 2008-05-08 16:54 ytl 阅读(1167) 评论(3)  编辑  收藏

个人在项目开发中总结的。供大家参考

1.页面显示中文时出现的乱码,通常使用

1 <%@ page contentType="text/html;charset=gb2312"%>

 

可以达到处理乱码的效果

2.从请求中获得数据是出现的中文乱码处理方法有
(1) get请求有两种处理方法
方法1:
在tomcat的配置文件(conf)中的server.xml的

1  <Connector port="8080" protocol="HTTP/1.1" 
2                connectionTimeout="20000" 
3                redirectPort="8443" 
4                URIEncoding="gb2312"/>


加入上面第4行代码即可。
方法2:也就是通常说的再编码的说法,

1<%
2   String name=request.getParameter("name");
3   byte []b = name.getBytes("GB2312");
4   name=new String(b);
5%>
6也可简化为:
7<%=new String(request.getParameter().getBytes("GB2312"))
8%>


(2)post请求
在jsp页面中加入也下代码

1<%request.setCharacterEncoding("gb2312");%>

需要注意的是这部分代码要放写在获得请求内容以前。

3.以上就是JSP页面中出现乱码的方法,最后我想说的就是如何确定发送的
  请求是GET 还是POST。
(1)一般表单(Form)提交中有method方法确定。
(2)通过URL链接传递为GET方法提交
(3)通过地址重写的为GET方法提交

谢谢阅读


评论

# re: JSP中乱码解决方案  回复  更多评论   

2008-05-08 17:10 by BeanSoft
好!

# re: JSP中乱码解决方案  回复  更多评论   

2008-05-28 15:44 by 懒人
我们用charset=gbK

# re: JSP中乱码解决方案  回复  更多评论   

2009-07-02 00:08 by 何静
讲的好!

String name=new String(request.getParameter("name").getBytes("iso-8858-1"));

请问这样可以吗?

只有注册用户登录后才能发表评论。


网站导航: