<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
1.首先在页面中设置你的编码,就是为了告诉浏览器,等下发消息给服务器的时候,使用UTF-8编码,你的如果是gb2312就改成gb2312,gbk也一样;
2.页面中form的method修改为post
3.在servlet中解码和编码
request.setCharacterEncoding("UTF-8");
并且把这句话放在request.getParameter()之前
以上是使用UTF-8的方式获取中文呢。 也可以使用GBK。把所有的UTF-8替换为GBK即可。 GB2312同理。
4.返回中文的响应 在servlet中加上这句
response.setContentType("text/html; charset=UTF-8");
设置响应编码有两种方式
1. response.setContentType("text/html; charset=UTF-8");
2. response.setCharacterEncoding("UTF-8");
这两种方式都需要在response.getWriter调用之前执行才能生效。
他们的区别在于
1. response.setContentType("text/html; charset=UTF-8");
不仅发送到浏览器的内容会使用UTF-8编码,而且还通知浏览器使用UTF-8编码方式进行显示。所以总能正常显示中文
2. response.setCharacterEncoding("UTF-8");
仅仅是发送的浏览器的内容是UTF-8编码的,至于浏览器是用哪种编码方式显示不管。 所以当浏览器的显示编码方式不是UTF-8的时候,就会看到乱码,需要手动再进行一次设置。