charles 中文乱码问题

charles是一款非常适合mac使用的抓包工具,其功能的强大对于测试人员来说掌握熟悉之后,能提高不少工作效率。之前整理过charles抓包工具对测试人员来说的使用点。其实在整理到Map Local时,重定向遇到了中文乱码的问题,查询部分资料才解决这个问题。现也整理进自己的学习笔记,以便大家入坑。

编码格式的自查

一般UTF-8得编码格式能被charles识别,所以在重定向的时候,可以检查文件内容是什么编码格式。我用的是sublime text,打开Preferences——Settings-Default:

img

img

找到default_encoding的值,查看是否为UTF-8.若是则改成这个格式,尝试看看,一般都是可以解决问题了。若还不行,则继续往下看。

我们需要用到charles中的rewrite功能,将某些内容替换成UFT-8可以识别的内容。

首先选中工具栏的Tools——Rewrite选项,进入Rewrite settings界面:

img

img

上面那张图就是Rewrite的设置内容。

第一步,当然是Enable你的Rewrite啦;

第二步,add一个set,就会出现第三步默认勾选的一个设置;

第三步,出现了一个未命名的设置;

第四步,新建一个Rule在你的设置中;点击add就会出现Rewrite Rule的编辑框。Type选择Modify Header,where可以根据你的需要来,一般都是响应的内容。Match中的值就是你需要替换的那块,我是要把application/jason替换成它的编码格式为UTF-8,所以在Replace中Content-Type的值增加了charset=UFT-8,点击ok就完成了Rule的建立。再看Rewrite Settings里的内容就会新增一条Type为Modify的Rule。替换完毕之后,再去做Map Local等等的请求时,就会发现客户端的中文内容不再不是一片乱码啦!