抓包工具 Charles Response Contents中文乱码解决方法(新)

本文详细介绍了解决Charles SSL代理时出现乱码的问题。通过安装正确的SSL证书,并配置信任设置来确保所有网站抓取的数据正常显示。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

转载自:https://www.cnblogs.com/mrjade/p/7677051.html

用到Charles,下载最新的4.0.1版本,但是发生乱码问题。百度好久才找到个靠谱的,那些说什么在Info.plist文件加字符串的,都是假的,反正我是试了都没用,这里记下详细的操作步骤解决: 
1.安装SSL证书 
3.10之前的,需要去http://www.charlesproxy.com/ssl.zip 下载 CA 证书文件,然后双击 .crt 文件,选择「总是信任」按钮,在钥匙串访问中即可看到添加成功的证书。 
3.10及之后安装方法: 

打开Charles,上方菜单栏 —-》Help —-》SSL Proxying —-》Install Charles Root Certificate,如图所示:

这里写图片描述

点进去之后,出现如下图:

这里写图片描述

我这边是已经配好了,若是没配置好的,图中“此证书具有自定信任设置”其实是红色告警,配置,很简单,只要双击图中选中一行,出现如下图:

这里写图片描述

打开“信任”一栏,在“加密套接字协议层(SSL)”一栏选择始终信任,关闭保存即可。 

2.打开Charles,上方菜单栏 —-》Proxy —-》SSL Proxy Settings —-》Add,如图: 

这里写图片描述

Host:填*表示所有网站都抓 
Port:443 
点击OK,就不再乱码了,亲测。

### Charles 抓包工具中文乱码解决方案 Charles 是一款功能强大的抓包工具,但在实际使用过程中可能会遇到中文乱码的问题。以下是针对该问题的专业解决方案。 #### 1. 检查编码设置 Charles 默认使用的编码格式可能与实际请求或响应的编码格式不一致,这会导致中文显示为乱码。需要手动调整 Charles 的编码设置以匹配实际数据的编码[^1]。 - 打开 Charles 工具。 - 在菜单栏中选择 **Proxy > Proxy Settings**。 - 转到 **HTTP** 标签页。 - 确保勾选了 **"Enable HTTP Proxy"** 和 **"Enable transparent HTTP proxying"**。 - 如果仍然存在乱码问题,可以尝试在 Charles 中设置全局编码: - 菜单栏选择 **View > Encoding**。 - 将编码更改为 **UTF-8** 或其他适合的编码(如 GBK)。 #### 2. 配置 SSL 代理 如果抓取的是 HTTPS 请求,SSL 代理配置不当也可能导致中文乱码。确保 SSL 代理设置正确无误: - 在 Charles 中打开 **Proxy > SSL Proxying Settings**。 - 添加需要抓包的域名到 **Location** 列表中。 - 确保已安装 Charles 的根证书,并且浏览器或应用信任该证书[^1]。 #### 3. 修改系统区域设置 某些情况下,操作系统本身的区域设置可能会影响字符编码的解析。建议检查并调整 Windows 系统的区域设置: - 打开 **控制面板 > 区域和语言**。 - 在 **管理** 标签下,点击 **更改系统区域设置**。 - 勾选 **Beta 版: 使用 Unicode UTF-8 提供全球语言支持**。 - 重启计算机以使更改生效。 #### 4. 使用外部工具辅助解码 如果上述方法仍无法解决问题,可以将 Charles 抓取到的数据导出到外部工具进行解码处理。例如,使用 Python 脚本对乱码内容进行重编码: ```python # 示例代码:将乱码文本从错误编码转换为正确编码 def convert_encoding(text, from_encoding='latin1', to_encoding='utf-8'): try: decoded_text = text.encode(from_encoding).decode(to_encoding) return decoded_text except Exception as e: return f"Error: {e}" # 示例调用 乱码文本 = "åéäìãá" # 假设这是 Charles 抓取到的乱码 正确文本 = convert_encoding(乱码文本, 'latin1', 'utf-8') print(正确文本) ``` #### 5. 更 Charles 版本 确保使用的是最版本的 Charles 工具。旧版本可能存在已知的编码问题,而版本通常会修复这些问题。可以从官网下载最版安装包并重安装。 --- ### 注意事项 - 如果乱码问题仅出现在特定平台或应用中,可能是这些平台本身未正确设置编码头信息。可以通过抓包查看 `Content-Type` 字段是否包含正确的字符集声明(如 `charset=UTF-8`)。 - 在调试 HTTPS 请求时,务必确保 Charles 的根证书已正确安装并被目标应用信任,否则可能导致请求失败或数据解析异常。 ---
评论 22
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值