JMeter中JSON请求体含英镑符号引发解析异常的解决方法
解决JMeter中POST请求体含英镑符号(£)的JSON解析异常问题
这种情况我之前踩过坑,核心原因大多是字符编码不匹配——Postman会自动用UTF-8编码处理特殊字符,但JMeter有时候默认的编码设置没跟上,导致英镑符号这类非ASCII字符被错误编码,直接触发JSON解析失败。下面是几个亲测有效的解决办法:
方法1:全局配置JMeter使用UTF-8编码
- 找到JMeter安装目录下
bin文件夹里的jmeter.properties配置文件 - 搜索
sampleresult.default.encoding这一行,把它的值修改为UTF-8,如果这行前面有#注释符号,记得去掉 - 重启JMeter后再重新发送请求,基本能解决大部分编码问题
方法2:针对单个HTTP请求指定编码
如果不想改动全局配置,可以给出问题的HTTP请求单独设置:
- 选中你的HTTP请求Sampler,切换到「Advanced」标签页
- 在「Content encoding」输入框里填写
UTF-8 - 保存配置后重新运行请求即可
方法3:用Unicode转义字符替换英镑符号(备用方案)
要是上面两种方法都没生效,试试把请求体里的£替换成它的Unicode转义形式\u00A3,修改后的请求体如下:
{"value":[{"text":"Paying \u00A345 a month ok for you?"}]}
这样JMeter就能正确识别这个字符,不会再抛出解析异常了。
额外需要检查的地方
- 如果你的请求体是通过参数化工具(比如CSV Data Set Config)引入的,一定要确保参数文件的编码是UTF-8——可以用记事本打开文件,选择「另存为」,编码选UTF-8保存
- 检查HTTP请求头的
Content-Type是不是application/json;charset=UTF-8,有时候只写application/json不够明确,加上charset=UTF-8能让服务器清楚用UTF-8解析请求体
内容的提问来源于stack exchange,提问作者asinha
相关产品推荐
相关产品推荐

