背景
遇到一个线上问题,需要通过pingback分析用户的行为。数据组提供一份相关用户的pingback文件用于分析。但是看pingback文件太痛苦了,于是就想编写一个脚本处理一下,对针对其中的参数值,替换成其代表的中文含义,方便查看。
需求
由于pingback的log信息都是记录在linux端的,通常非桌面环境的linux版本都不支持中文显示,因此导出来的pingback中带的中文也是非中文的。中文的显示也是类似这种形式:\xE7\xAD\x89\xE4\xBD\xA0\xE5\x8C\x85\xE5\x85\xBB\xE6\x88\x91,为了方便阅读,需要把这种类型的字符转化为中文
实现过程
想要实现这个需求,总共有以下两个过程:
明确这是啥字符?
怎么还原这种字符为中文?
一、这是啥字符 ?
经过一番搜索调研,找到这么一种解释?
linux默认使用utf-8编码,而utf-8默认以unicode字符集进行的编码,此种格式其实是一种utf-8的字节码[bytes]。如果要还原,需要对其进行utf-8解码
这次知道是啥了,那就知道要怎么处理了,python中有很多方法可以编码、解码,于是开始第二个过程
二、怎么还原成中文?
python 3中对字符编码方面,进行了很大的改进,默认采用了unicode字符集并使用utf-8进行编码。而且转换方法很灵活。于是开始实验:
>>> a = '\xE6\x96\xB0'>>>