Python 文字编码的处理
2014-07-04 00:00
141 查看
摘要: 对于Python中文字编码的处理非常让人头疼,要确保 1. Python文件的编码, 2. 运行时的编码,3. 输入输出流的编码的一致性。做到1.2两点非常容易,用Sublime就可以处理好。对于3的处理,要做到这一点还是非常困难的,最关键的一点是因为在Python中你会使用非常多的第三方库。网上讲解Python文字编码的博客非常多,看得我云里雾里的。那有没有简便一点的处理办法呢?
Python版本:2.7
对于Python中文字编码的处理非常让人头疼,要确保
1. Python文件的编码,
2. 运行时的编码,
3. 输入输出流的编码的一致性。
做到1.2两点非常容易,用Sublime就可以处理好。对于3的处理,要做到这一点还是非常困难的,最关键的一点是因为在Python中你会使用非常多的第三方库。网上讲解Python文字编码的博客非常多,看得我云里雾里的。那有没有简便一点的处理办法呢?
首先声明下我的应用:我是在用Scrapy进行抓取网站的时候发现文字编码非常的杂乱,还有就是在用Libtorrent处理BT种子的时候,提取BT种子的文件名也会出错。这个是我以前的处理方式:
这样处理BT种子的结果如下:
那怎么用最简洁的方式处理呢?
1. 对于抓取的时候,用Scrapy自带的库
2. 对于处理BT种子编码的时候,用Django的库:
3. 然后一切就完美了。
Python版本:2.7
对于Python中文字编码的处理非常让人头疼,要确保
1. Python文件的编码,
2. 运行时的编码,
3. 输入输出流的编码的一致性。
做到1.2两点非常容易,用Sublime就可以处理好。对于3的处理,要做到这一点还是非常困难的,最关键的一点是因为在Python中你会使用非常多的第三方库。网上讲解Python文字编码的博客非常多,看得我云里雾里的。那有没有简便一点的处理办法呢?
首先声明下我的应用:我是在用Scrapy进行抓取网站的时候发现文字编码非常的杂乱,还有就是在用Libtorrent处理BT种子的时候,提取BT种子的文件名也会出错。这个是我以前的处理方式:
def decode(name): coding = ['utf-8', 'gbk', 'gb2312', 'Big5'] for c in coding: try: return name.decode(c) except UnicodeDecodeError: continue else: return name
这样处理BT种子的结果如下:
那怎么用最简洁的方式处理呢?
1. 对于抓取的时候,用Scrapy自带的库
from w3lib.encoding import html_to_unicode
2. 对于处理BT种子编码的时候,用Django的库:
from django.utils.encoding import force_unicode
3. 然后一切就完美了。
相关文章推荐
- 用python2.7 做sogou字典处理编码的时候踩过的坑——学习笔记【文字编码转换 decode chardet】
- 【中文编码】使用Python处理中文时的文字编码问题
- python处理网络文字流,设置为utf8编码
- python中读写文件及中文编码处理方法
- Python编码错误处理
- python 编码处理
- python 编码处理
- python中文字符串编码处理
- Python2 中文编码处理
- 学习python处理python编码问题
- [Python学习]Unicode及编码处理心得
- Python:文件读写及中文编码处理
- Python的编码处理技术
- 中文编码相关,python处理gbk编码的xml文件方法
- 利用python处理xml -- 中文编码问题
- python 中文编码处理与文件读写
- [Python学习]Unicode及编码处理心得
- [Python学习]Unicode及编码处理心得
- Python编码处理
- python中的编码处理