最近在玩一些爬虫,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汉字码。
此种方法能够将整个字符串中的汉字全部编码。
打完收工!
转载于:https://blog.51cto.com/goauto/1564962