有关于【该文件的字符编码需要在传输协议层声明,或者在文件中加入一个 BOM(字节顺序标记)】的另一种解决办法

来源:互联网 发布:steam登录网络错误 编辑:程序博客网 时间:2024/06/04 01:18

昨天测试一个接口的时候发现一个异常,浏览器访问一个controller,然后带了一个JSON格式的参数,然后浏览器返回400错误,调试发现下面的错误信息:

纯文本文件的字符编码未声明。如果该文件包含 US-ASCII 范围之外的字符,该文件将在某些浏览器配置中呈现为乱码。该文件的字符编码需要在传输协议层声明,或者在文件中加入一个 BOM(字节顺序标记)。

很纳闷,这个服务的部署环境是window10系统,之前在centos7测试是没有这样的问题。

搜索发现都是说在访问页面的开头加上下面的语句:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Stict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml" lang = "zh-CN">


并在<head>下面加上下面的语句:
<head><meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>.........</head>
但实际上我是直接通过浏览器访问,无法添加任何有关字符编码等申明的。后来有同事提醒说在使用GET传输JSON格式的‘{}’【大括号】应该会被浏览器拦截,需要转义。恍然大悟,于是把 {} 去除完全可以访问,问题定位了。

最后的解决办法是把 {} 转义成 %7B%7D 即解决上述问题。


阅读全文
0 0
原创粉丝点击