• Charles maplocal 时中文显示乱码问题


    用Charles对request进行Map Local后,app上看返回的中文是乱码?

    是Map Local的文件编码有问题?是Charles设置有问题?是电脑环境有问题?哈哈,都不是

    你是Android开发?你的项目里网络框架用的是volley?是不是猜得很准?

    对,万万没想到问题出在volley上,简单说就是 volley获取从网络来的信息流时会对其进行解码,而解码方式是根据返回数据的header中的content-type来进行的,如果content-type为空,则默认解码方式是iso-8859-1,一个只支持英文和数字的字符集,不支持中文;同时又因为我们正常走接口时返回的数据是带header的,而且会指定content-type是utf-8,所以这时候volley解码不会有问题,但是map local的时候因为数据不带header,所以volley使用了默认的解码方式,导致出现了乱码

    解决方式是利用 charles的rewrite功能,替换response内容,把返回结果的content-type替换成utf-8

    具体步骤是:

    1.Tools中启用Rewrite功能
    2.在打开窗口中点击左侧中的Add按钮,添加一条Rewrite规则
    3.点击右上的Locations中的Add,可以全部留空匹配所有请求。也可以根据需要过滤指定的接口,点击OK
    4.点击右下的Rules中的Add按钮,顶部下拉框选择添加一条type为Modify Header的规则,勾选Response,在Match的Header中添加匹配Content-Type = text/plain的项,并在replace中添加Content-Type = application/json;charset=UTF-8的项,点击OK

    第四步配置如图:

    参考资料:http://www.paincker.com/charles-charset-incorrect 感谢这位博主

  • 相关阅读:
    个人工作总结(2)
    个人工作总结(1)
    学习进度条
    学习进度条
    返回一个二维整数数组中最大联通子数组的和
    学习进度条
    构建之法阅读笔记02
    STM32F4寄存器初始化:PWM输出
    STM32F4跳转函数
    STM32F4寄存器串口DMA汇总
  • 原文地址:https://www.cnblogs.com/bellkosmos/p/6523366.html
Copyright © 2020-2023  润新知