@WebServlet(urlPatterns = "/response03")
public class SetEncode extends HttpServlet {
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
doGet(request,response);
}
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
/*
* Response设置响应体(页面中显示的内容)
* 字符流:只能读写文本
* getWriter() 返回的是字符打印流printWrite,字符打印流有自己的方法print和println还有继承自父类writer中的方法
*
* 字节流:可以读写任何文件
* getOutPutStream() 返回的是字节输出流OutputStream
*
*
*
*
*
* */
/* PrintWriter pw = response.getWriter();
pw.write(97);
pw.print("welcome");
pw.write("你好");*/
/*
* 写中文出现乱码
* 原因:编码和解码不一致,
* 使用response给客户端响应数据,不是直接把数据写回给浏览器,而是存储到response缓冲区中
* response对象的缓冲区默认使用SO8859-1编码,拉丁文没有中文
*
* 解决:1.设置response缓冲区的编码为utf-8编码
* response.setCharacterEncoding("utf-8")
* 2.通知浏览器使用utf-8格式解码(浏览器默认使用GBK解码)
* <meta charset="UTF-8">
*
* apache将这两个方法封装在了一起
* response.setContentType("text/html;charset=utf-8")
*
* 注意:必须先设置编码格式,再获取字符输出流对象
*
*
* */
response.setContentType("text/html;charset=utf-8");
PrintWriter pw = response.getWriter();
pw.write("你好");
}
}
Response之写回中文时出现乱码
最新推荐文章于 2023-08-27 22:42:05 发布