最近在玩一些爬虫,python中文转码刚接触是一件麻烦的事(转换的原理省略)
一般来说有encode(‘gbk‘),edcode(‘utf8‘),decode(‘gbk‘),decode(‘utf8‘)可以解决很大一部问题
但是今天遇到了‘\\u6210\\u529f‘这种格式,上面的三板斧就搞不定了
经过万能的度娘,发现了第一个贴子,叹为观止
http://bbs.chinaunix.net/thread-3674073-1-1.html
代码如下
#!/usr/bin/env python # -*- coding: utf-8 -*- import re import sys def main(): for line in sys.stdin: sys.stdout.write(re.sub(r‘\\u\w{4}‘, lambda e: unichr(int(e.group(0)[2:], 16)).encode(‘utf-8‘), line)) if __name__ == ‘__main__‘: main()
接着又是万能的度娘,没错还是他,找到一个更方便快捷的方法
http://blog.csdn.net/garinwang/article/details/6329262
代码如下
str = str.decode(‘unicode_escape‘) str = str.encode(‘gbk‘)
第一步将字符串解码为unicode,第二步将unicode码编码为gbk汉字码。
此种方法能够将整个字符串中的汉字全部编码。
打完收工!
时间: 2024-10-05 05:12:00