处理中文乱码问题

平时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" />

posted @ 2015-07-03 17:04  小鲜肉成长记  阅读(114)  评论(0编辑  收藏  举报