解决JSP中文乱码

JSP编码设置:

将创建的JSP代码的(默认在第一行)

<%@ page language="java" contentType="text/html; charset=ISO-8859-1" pageEncoding="ISO-8859-1"%>

替换成

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>

HTML编码设置:

因为JSP中也包含HTML的内容,HTML本身也是有编码格式的。
将HTML的charset的值改为和JSP编码一致,如UTF-8:

<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">

Request中文乱码:

有时候在做jsp逻辑处理时,比如提交表单,从前台注册的页面提交了一部分的数据,但是后面处理的JSP页面通过 request.getParameter 调用时,获取到的是一堆乱码。

这是因为虽然前面JSP设置了编码格式,却没有在当前的JSP中设置读取数据的编码格式。

使用下面的代码,就可以是设置request获取请求内容的数据编码:

request.setCharacterEncoding("utf-8");

URL传参中文乱码:

这里我们需要配置tomcat服务器文件,才能解决这个问题。具体方法是,在tomcat的conf目录下找到server.xml配置文件,找到如下代码:

<span style="font-size:18px"> <Connector port="8080" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" /></span>

在后面添加上编码方式,URIEncoding=”gb2312”或者utf-8 重新启动Tomcat问题就解决了。

POST中文乱码:

在Tomcat中,对于以POST方式提交的表单编码格式默认为ISO-8859-1的编码格式,而这种编码格式是不能编码中文的,所以就会出现乱码的现象。对于这种情况,我们可以对表单中的数据进行处理,在取得表单参数的时候设置编码方式,我们更改了我们的接受表单数据的页面如下所示:

<% new String(userName.getBytes("ISO-8859-1"),"gb2312") %>  

如:

<%  
    String userName = request.getParameter("userName");  
    String passWord = request.getParameter("password");  
    out.println("表单输入的userName值为:" +  new String(userName.getBytes("ISO-8859-1"),"gb2312")+"<br>");  
    out.println("表单输入的pasword值为:" + new String(passWord.getBytes("ISO-8859-1"),"gb2312")+"<br>");  
 %>  
  • 22
    点赞
  • 48
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值