zoukankan      html  css  js  c++  java
  • 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 感谢这位博主

  • 相关阅读:
    CSS标题线(删除线贯穿线效果)实现之一二
    sublime修改快捷键样式
    使用css鼠标移动到图片放大效果
    js判断苹果安卓操作系统,js更换css
    清除缓存
    mui下拉上拉(明一)
    mui下拉刷新上拉加载
    Cypher学习笔记
    github上计算String相似度好的项目
    代码重构
  • 原文地址:https://www.cnblogs.com/bellkosmos/p/6523366.html
Copyright © 2011-2022 走看看