处理中文乱码问题

平时coding时,经常遇到一些乱码问题,现在总结一下在使用Servlet时遇到的一些乱码问题,简单的解决办法两种

第一种简单处理方式

         在servlet中数据的处理是通过request和response进行处理的,提交数据有两种方式:post+get

 ①post提交方式--只要事先设置request.setCharacterEncoding("UTF-8");-------注:只对POS提交有效

 ②get提交方式--通过ISO8859-1得到客户端发送的数据,再转成UTF-8类型。(或者其他类型,gbk,gb2312)

String username = request.getParameter("username");
username = new String (username.getBytes("ISO8859-1","UTF-8"));

从上面的两种方法可以看出如果是GET提交方式,要做的处理就相当麻烦,所以在提交方式设置时,建议大家使用POST,这也是POST的好处之一。但是还有一种是通过超链接从客户端提交的中文处理,服务端只能用GET处理方式。

在服务端响应时,通过response响应时,对于中文乱码问题,也必须进行处理。

        通过response.setCharacterEncoding("UTF-8");   //以“UTF-8”的方式响应输出         

        response.setContentType("text/html;charset=UTF-8");   //并且告诉浏览器用“UTF-8”的方式打开。

第二种过滤器方式处理乱码问题,原理及代码后续补上~

获取某个字符串的编码格式以及重新设置编码

keyWord = new String(keyWord.getBytes(),"UTF-8");

Tomcat服务器编码方式设置:server.xml

<Connector useBodyEncodingForURI="true" URIEncoding="UTF-8"
  port="8080" protocol="HTTP/1.1"
               connectionTimeout="20000"
               redirectPort="8443" />

转载于:https://www.cnblogs.com/jeofey/p/7227061.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值