Python 文字编码的处理

    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种子的结果如下:Python 文字编码的处理_第1张图片

    那怎么用最简洁的方式处理呢?

   1.  对于抓取的时候,用Scrapy自带的库

from w3lib.encoding import html_to_unicode

    2. 对于处理BT种子编码的时候,用Django的库:

    from django.utils.encoding import force_unicode

    3. 然后一切就完美了。

你可能感兴趣的:(django,python,scrapy,libtorrent,文字编码)