JMeter 响应中文乱码解决方案
JMeter 响应数据出现中文乱码,通常是因为 JMeter 默认使用 ISO-8859-1 编码,而接口返回的数据是 UTF-8 编码。
以下是几种常用的解决方案,按推荐程度排序:
1. 修改配置文件(全局生效,最推荐)
这是最彻底的解决方法,修改一次后对所有脚本生效。
- 进入 JMeter 安装目录的
bin文件夹。 - 找到并打开
jmeter.properties文件。 - 搜索关键字
sampleresult.default.encoding。 - 找到该行,去掉行首的
#号,并将值修改为UTF-8:# 修改前 #sampleresult.default.encoding=ISO-8859-1 # 修改后 sampleresult.default.encoding=UTF-8 - 保存文件并重启 JMeter。
2. 在 HTTP 请求中指定编码(局部生效)
如果你没有权限修改配置文件,或者只想针对某个特定接口生效:
- 在 JMeter 界面中选中你的 **HTTP Request (HTTP 请求)**。
- 找到 Content encoding (内容编码) 字段。
- 手动输入
utf-8(不区分大小写)。
3. 使用 BeanShell 后置处理器(脚本强制转换)
如果以上方法都无效,可以使用脚本强制修改响应数据的编码:
- 在对应的 HTTP 请求节点上右键,选择 Add (添加) -> Post Processors (后置处理器) -> BeanShell PostProcessor。
- 在 Script 区域输入以下代码:
prev.setDataEncoding("UTF-8");
4. 针对请求体(Body)乱码
如果是你发送给服务器的中文变成乱码(而不是接收乱码),请检查:
- HTTP 请求头:确保添加了
Content-Type: application/json;charset=UTF-8。 - 勾选编码:在 HTTP 请求的 Parameters 中,勾选 “URL Encode”。