1.python3 解决方案
python3似乎对一切的unicode都那么的友好,当一个字符串里存在unicode的时候,只要字符串是硬编码的,就可以转换成中文打印在控制台上,如:
s = ‘u7b14u8bb0’
print(s)
你得到的就是中文汉字。
但是,假如你。。的这段含有‘u’的unicode编码不是硬编码进脚本的,而是通过requests在网上爬的。。。那么你会发现,你打印出来的,还是长这样的unicode编码,换句话说,解释器这个时候根本就没认出这东西原来是unicode编码,当成普通的字符序列了。
百度找到了最好的解决方法:在这个unicode串后面加上:
description = b"u662fu5bf9u624bu4e5fu662fu670bu53cbuff01u5965u8fd0u8d5bu573au4e0au7adeu4e89u4e4bu5916u7684u6e29u67d4u65f6u523bu8ba9u4ebau6ceau76ee,u672cu89c6u9891u7531u62bdu5c49u89c6u9891u539fu521bu63d0u4f9b,358u6b21u64adu653e,u597du770bu89c6u9891u662fu7531u767eu5ea6u56e2u961fu6253u9020u7684u96c6u5185u6db5u548cu989cu503cu4e8eu4e00u8eabu7684u4e13u4e1au77edu89c6u9891u805au5408u5e73u53f0"
s = description.decode('unicode_escape')
print(s)
s --->>>是对手也是朋友!奥运赛场上竞争之外的温柔时刻让人泪目,本视频由抽屉视频原创提供,358次播放,好看视频是由百度团队打造的集内涵和颜值于一身的专业短视频聚合平台
它就打印出汉字了
2.python2 解决方案
1 import sys
2 reload(sys)
3 sys.setdefaultencoding('utf-8')
此方法是将Python2的默认编码ASCII改为 utf-8。但此方法不是一劳永逸的,可能会使一些代码的行为变得怪异。
可以参考该连接:http://blog.ernest.me/post/python-setdefaultencoding-unicode-bytes