JavaWeb之response响应中文乱码问题

时间:2023-01-26 21:11:04

response向页面响应中文乱码问题

 字节流

* 有可能乱码,与中文转换成字节数组、浏览器打开的默认字符编码有关

* 解决方式:将中文转成字节数组的时候和浏览器默认打开的时候采用的字符集一致

response.setHeader("Content-Type", "text/html;charset=utf-8");
response.getOutputStream().write("张三".getBytes("utf-8"));

字符流

* 肯定乱码,因为response字符缓冲区的默认编码是iso-8859-1

* 解决方式:设置response获得字符流缓冲区的编码和设置浏览器默认打开时候采用的字符集一致即可

//设置浏览器默认打开字符集
response.setHeader("Content-Type", "text/html;charset=utf-8");
//设置字符流缓冲区编码,可以省略,因为在setHeader实现类默认就调用了这个设置
response.setCharacterEncoding("utf-8");
response.getWriter().println("张三");
* 使用字符流向页面响应还有一种简化写法
response.setContentType("text/html;charset=utf-8");
response.getWriter().println("张三");