跟踪Android客户端中文(偶然性)乱码

软件运行环境:html

    服务端: ubuntu 14.04.2 serverjson

     客户端: Android padubuntu

数据跟踪工具: 无线网卡 + Wireshark + notepad ++
浏览器

———————————————————————————————————————服务器

    当客户端和服务器进行数据交互的过程当中,测试过程当中发现数据异常,可是在彼此程序猿的经过打印输出数据方式跟踪数据的异常,并且在彼此都确定数据没问题的时候,是很是蛋疼的,究竟是谁的错?那么咱们就从数据的传输介质中接受端或者发送端入口处截取数据分析。网络

        在此,我采用的是经过截取网络数据到Android设备的入口处截取。因为在移动设备上采用抓包再分析是一个很麻烦的过程,还须要root设备,如若采用模拟器 + tcpdump操做,过程繁琐。本人在此分享一种经过在主机上(台式机)插入一个无线网卡,让其成为一个热点而且用移动设备链接这个热点,在PC端用Wireshark抓取台式机无线网卡的数据,就能够很easy的分析数据了。具体分为如下几步(针对客户端数据显示偶然性中文乱码tcp

  1. 插入无线网卡,下载360免费wifi(真心比wifi精灵好使,wifi精灵特么程序老死),配置好无线热点,用移动设备链接热点编辑器

  2. 如上图,设备已经链接好热点,下面就是打开PC端的Wireshark工具工具


    如图所示选择无线链接,点击Start开始抓取无线网卡上的数据包。测试

  3. 设置过滤条件(例以下图中过滤来自服务器169.254.1.12的数据),在移动设备上操做软件,用Wireshark将数据打印到txt文本,因为是中文字符,因此要要分析字符的内码,因此在txt数据包中找到关键数据,并将中文字符的16进制码拷入notepad++ 中用Hex-Editor编辑,最后把编辑后的数据保存为html,用浏览器打卡,查看中文显示是否正确(以下图)



    如上图所示,截取的数据真实字符为【 某某会议室 ISC TV 】,将截取的16进制放入notepad++ 的Hex-Editor编辑器中编辑,并保存为html文件,最后用浏览器打开,选择不一样编码格式

    notepad++ Hex-Editor 编辑以下图所示


用浏览器打开

将正确中文数据和乱码中文数据分别用Wireshark截取两份,比较。 因为从事的是服务端开发,因此经过此种方法顺利的把责任推给 移动客户端的程序猿。不过目前没有找到乱码的缘由,因为数据是分两个网络数据包发送过去的,目前猜想可能客户端在接受数据包,拼接的时候出现问题,或者json库使用的过程当中转utf-8编码出现问题。

相关文章
相关标签/搜索