Servlet中文乱码问题解决办法

Servlet中编码问题,有需要的朋友可以参考下。

首先jsp页面和servlet里面的字符集要一样,一般支持中文的字符集为UTF-8最好采用这个字符集(除此之外还有gb2312);

一. 对于源jsp文件的代码中需要设置

设置你的page里面的字符集

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

设置html文件里面的字符集

<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
二.如果对于参数通过get方法进行传参的话,有两种方法:
  • 方法一:
    在tomcat里面设置字符集为UTF-8,修改server.xml
<Connector port="80" protocol="HTTP/1.1" 
connectionTimeout="20000" 
redirectPort="8443" URIEncoding="utf-8"/>

注意: 必须有修改tomcat服务器配置文件权限

  • 方法二:通过对servlet里面的进行设置:
response.setHeader("Content-Type", "text/html;charset=UTF-8");//设置UTF-8的显示页面的类型和字符集
username = new String(username.getBytes("ISO8859-1"),"utf-8");//根据你的tomcat里面的字符集进行对中文进行转换,将iso转换为UTF-8
三.如果对于参数通过post方法进行传参的话,则设置为:
response.setHeader("Content-Type", "text/html;charset=UTF-8");//设置UTF-8的显示页面的类型和字符集
request.setCharacterEncoding("utf-8"); //设置通过post方法进行传参的字符集

在这里需要注意的是:

  1. 对于post和get传参的时候解决中文乱码问题的时候一定要分清楚是哪种方式传参,是post就得用post不然会没用的

  2. 对于两种不同的地方不能合用,乱码问题解决不了的。

若有任何疑问或是不解请在下方评论,谢谢。

猜你喜欢

转载自blog.csdn.net/YYxiaobao0726/article/details/86639083