in python ~ read.

Python - 编码问题

Mitchell

Python 编码问题

  • 以下是关于 python 编码规则的一些介绍:
    • Python 内部所有编码统一是 Unicode,unicode 是一种中转码;
    • 中文是 gbk 格式;
    • 正常输出为 utf-8 格式。
  • 当出现乱码的情况时,我们需要通过一系列的转码
过程表述:
原文件编码格式 --> unicode 中转码 --> 转为我们需要的编码格式。
代码实现:
decode() --> unicode --> encode()转换为我们需要的编码格式。  
  • Exp:
    • 用 Python 读取 file.txt 中文文档;
f = open('filePath','r')  
content = f.read()  
print content.decode('gbk').encode('utf-8')  
  • 判断是否是 Unicode,自动处理编码
if isinstance(content, unicode):  
   print content.encode('utf-8')
else:  
   print content.decode('gbk').encode('utf-8')
  • 有时在获取网页内容时候,可能会遇到由于网站内容也是爬取到的,有的网站的编码格式不统一,造成可能有些位置出现乱码的解决方式:
web=urllib.urlopen(url)  
content = web.read().decode('gbk','ignore').encode('utf-8')  
  • 为什么不统一都使用 unicode 编码格式? 从技术方面来解释是为了节省硬盘和流量。
  • 编码问题可能带来的影响
    • 假如公司网站是面向国际的,这时如果使用的编码格式是 gbk,会被搜索引擎认为是中文网站,当在搜索引擎投放广告时,在中国 ip 进行搜索时排名可能会靠前,当其他外文国家在搜索时,因为会有根据语言来显示的策略,这个时候编码格式可能会影响其排名。
comments powered by Disqus