码迷,mamicode.com
首页 > Web开发 > 详细

Http响应乱码

时间:2019-11-02 14:00:01      阅读:116      评论:0      收藏:0      [点我收藏+]

标签:方案   char   ESS   mes   content   响应   ons   乱码   odi   

Http响应乱码

方案1

response.setHeader("Content-Type", "application/json");
response.setCharacterEncoding("GBK");
//Content-Type: application/json;charset=GBK
//{code: "401", message: "未登录"}

方案2

response.setHeader("Content-Type", "application/json;charset=UTF-8");
//{code: "401", message: "未登录"}
//Content-Type: application/json;charset=UTF-8

注意

只设置Content-Type不带编码信息无效

/*
只设置Content-Type,没有带编码信息,String中的中文是UTF16编码的。tomcat以其默认的ISO-8859-1从String中获取字节。tomcat附加在Content-Type的编码是charset=ISO-8859-1,浏览器会以这个编码解码,但是得不到原始中文信息。
*/
response.setHeader("Content-Type", "application/json");
//{code: "401", message: "???"}
//Content-Type: application/json;charset=ISO-8859-1

只设置response.setCharacterEncoding("GBK"),知识tomcat以GBK编码从String对象中获取字节。但是此时没有Content-Type信息。也就是浏览器将会用默认的类型和编码解析响应。不一致也会出现乱码。

//tomcat将字符串按GBK编码转为字节,但是浏览器收到字节后,按照默认编码解析将会乱码。
response.setCharacterEncoding("GBK");
//{"code":"401","message":"δ???"}

Http响应乱码

标签:方案   char   ESS   mes   content   响应   ons   乱码   odi   

原文地址:https://www.cnblogs.com/mozq/p/11781397.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!