Electron下对web微信抓包HTTP请求结果有中文乱码,如何解决?

用Electron把web微信包了一层,然后根据官方文档,使用chrome-devtools的network对HTTP请求进行抓包。但是在一个POST的response中,返回的是一个JSON字符串,里面的中文字段值是乱码。

根据response的headers,能看到服务端并未给出这次返回的charset,所以猜测node里是当做默认编码(Latin_1)解码的,所以造成了乱码。但理论上字符的二进制序列应该是对的,所以我用Buffer转了一次码

let content = new Buffer(e.Content, "binary").toString();

结果在有些情况下确实可以使用,但是有些字符不能准确转码。我直接打印了Buffer的内容,看字符的16进制内容。结果发现有的汉字编码并不对,比如:

啊" => e5 22 60, ×    //correct code is E5 95 8A
"你好" => E4 BD A0 E5 A5 BD, √

"

不知道该如何解决啊?看了官方web微信的js文件,并未对字段进行转码处理,难道是angular里自带转码么?

阅读 2.2k
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题