Servlet 中文乱码解决方案

一、Servlet表单提交中文乱码解决方案

GET方式时的乱码问题


1.确保表单所在的页面编码为UTF-8。


<!--在HTML5中 http-equiv和content可以省略,只需要指定 charset="UTF-8"即可-->
<meta http-equiv="Content-Type" content="text/html" charset="UTF-8">


2.如果Servlet容器是Tomcat8.0及之后则正常取值不会出现乱码。(前提是项目工作空间默认编码是UTF-8)


3.如果Servlet容器是Tomcat8.0之前的则需要先用ISO-8859-1解码,在用UTF-8编码:


String name = request.getParameter("name");
byte[] Bytes = name.getBytes("ISO-8859-1");//ISO-8859-1解码
name = new String(Bytes,"UTF-8");//UTF-8编码


POST方式时的乱码问题


1.确保表单所在的页面编码为UTF-8。
<!--在HTML5中 http-equiv和content可以省略,只需要指定 charset="UTF-8"即可-->
<meta http-equiv="Content-Type" content="text/html" charset="UTF-8">


2.在服务器端读取参数的前面使用 request.setCharacterEncoding("utf-8")设置字符编码为UTF-8。
request.setCharacterEncoding("UTF-8");
String name = request.getParameter("name");
注:此方法只针对post请求有效


二、Servlet输出到页面中文乱码的问题(response响应数据到游览器中文乱码的问题)

在获取Write/Out对象及调用out方法之前调用setContentType方法及setCharacterEncoding方法


response.setContentType("text/html");//告诉游览器,数据类型为text/html
response.setCharacterEncoding("UTF-8");//告诉游览器,数据编码为UTF-8

//response.setHeader("Content-Type","text/html;charset=utf-8");//等价于上面两句代码
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值