最近在学习Servlet中文乱码的时候,出现了一些问题,当 我把response的编码设置成utf_8的时候,在谷歌浏览器输入地址访问的时候,仍然出现了乱码。
package com.cn.tz;
import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
public class Servlet1 extends HttpServlet {
public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
response.setCharacterEncoding("utf-8");
response.getWriter().write("你好啊");
}
public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
doGet(request, response);
}
}
后来在书上看到这样一句话:
设置response查询的码表 虽然response已经设置为utf-8但是最后浏览器去解码的时候不是按照utf-8的方式 所以依然乱码,就需要在response发送数据时指定告诉浏览器要用什么编码。
意思就是说尽管response用的是utf-8,但是浏览器用的不是utf-8,需要解码,
加上这一行代码就可以搞定了
**response.setHeader("content-type", "text/html;charset=utf-8");
//这行代码就是设置一些响应信息,告诉浏览器的内容类型以及给出的内容类型里面包含字符编码说明
response.setCharacterEncoding("utf-8");
response.getWriter().write("你好啊");**