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

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

昨天测试一个接口的时候发现一个异常,浏览器访问一个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 即解决上述问题。



相关文章
C4.
|
9月前
|
算法 程序员 C++
C++标准头文件结构
C++标准头文件结构
C4.
115 0
|
easyexcel
EasyExcel低版本中数据行中包含空数据会跳过导致数据对应不上的问题解析
EasyExcel低版本中数据行中包含空数据会跳过导致数据对应不上的问题解析
540 0
读取文件结束的判定的概念,使用方法和文件缓冲区的位置
读取文件结束的判定的概念,使用方法和文件缓冲区的位置
149 0
|
内存技术
【音频处理】WAV 文件格式分析 ( 逐个字节解析文件头 | 相关字段的计算公式 )(一)
【音频处理】WAV 文件格式分析 ( 逐个字节解析文件头 | 相关字段的计算公式 )(一)
445 0
【音频处理】WAV 文件格式分析 ( 逐个字节解析文件头 | 相关字段的计算公式 )(一)
|
内存技术
【音频处理】WAV 文件格式分析 ( 逐个字节解析文件头 | 相关字段的计算公式 )(二)
【音频处理】WAV 文件格式分析 ( 逐个字节解析文件头 | 相关字段的计算公式 )(二)
214 0
【音频处理】WAV 文件格式分析 ( 逐个字节解析文件头 | 相关字段的计算公式 )(二)
|
内存技术
【音频处理】WAV 文件格式分析 ( 逐个字节解析文件头 | 相关字段的计算公式 )(三)
【音频处理】WAV 文件格式分析 ( 逐个字节解析文件头 | 相关字段的计算公式 )(三)
248 0
【音频处理】WAV 文件格式分析 ( 逐个字节解析文件头 | 相关字段的计算公式 )(三)
|
存储 编解码 移动开发
Java核心类库之(字符集/编码集、File类、递归、IO流:字节流、字符流、特殊操作流)
计算机中储存的信息都是用二进制数表示的;我们在屏幕上看到的英文、汉字等字符是二进制数转换之后的结果
223 0
Java核心类库之(字符集/编码集、File类、递归、IO流:字节流、字符流、特殊操作流)