servlet中response乱码

发布时间 2023-07-21 18:24:13作者: _lyl

1、response乱码


指服务器响应输出到浏览器,出现乱码。

响应流程

乱码就是A和B的设置有问题。



2、为什么默认设置会导致中文乱码?


idea中创建和打开文件使用的字符集为Unicode,输出时默认的编码方案A为UTF-8

浏览器默认的编码方案B为ISO_8859_1,不支持中文,所以浏览器接收到了UTF-8编码的数据,用ISO_8859_1解码就会出现乱码。



3、解决方案


为了使浏览器正确显示中文,可以

(1)修改浏览器的编码方案B,改成使用UTF-8解码

可以设置http响应报文的请求头,将浏览器的解码方式设置为UTF-8

resp.setContentType("text/html;charset=UTF-8"); //设置编码方案B

(2)AB都需要设置为同一种支持中文的编码方案,比如GBK

resp.setCharacterEncoding("GBK"); //设置编码方案A
resp.setContentType("text/html;charset=GBK"); //设置编码方案B


参考

https://blog.csdn.net/xiazdong/article/details/7217022