部分点滴小tips备忘
python Unicode转汉字
>>> a = '\u6709\u65f6\u5019\u4f60\u6293\u7d27\u67d0\u4e9b\u4e1c\u897f\uff0c\u5e76\u4e0d\u662f\u56e0\u4e3a\u4f60\u60f3\u8981\u7559\u4f4f\u5b83\u4eec\uff0c\u800c\u662f\u56e0\u4e3a\u653e\u624b\u5b9e\u5728\u592a\u96be\u4e86\u3002","love":"359","translation":"\u5c0f\u7f16\u7684\u8bdd\uff1a\u5176\u5b9e\u751f\u6d3b\u4e2d\u6709\u5f88\u591a\u65e0\u5948\u7684\uff0c\u5c31\u50cf\u72e0\u72e0\u5730\u6525\u4f4f\u4e00\u628a\u6c99\u5b50\uff0c\u4f60\u4f1a\u53d1\u73b0\u8d8a\u7528\u529b\uff0c\u6d41\u5931\u5f97\u8d8a\u5feb\uff1b\u5c31\u50cf\u7262\u7262\u5730\u5957\u4f4f\u4e0d\u5c5e\u4e8e\u4f60\u7684\u7231\u60c5\uff0c\u54ea\u6015\u904d\u4f53\u9cde\u4f24\uff0c\u53ea\u662f\u56e0\u4e3a\u653e\u624b\u4f1a\u8ba9\u4f60\u66f4\u75db\u82e6\u3002' # print a.decode('unicode-escape').encode('utf-8') >>> print a.decode('unicode-escape') >>> 有时候你抓紧某些东西,并不是因为你想要留住它们,而是因为放手实在太难了。","love":"359","translation":"小编的话:其实生活中有很多无奈的,就像狠狠地攥住一把沙子,你会发现越用力,流失得越快;就像牢牢地套住不属于你的爱情,哪怕遍体鳞伤,只是因为放手会让你更痛苦。
在爬虫抓取网页信息时常需要将类似"\u4eba\u751f\u82e6\u77ed\uff0cpy\u662f\u5cb8"转换为中文,实际上这是unicode的中文编码。可用以下方法转换:
>>> s = u'\u4eba\u751f\u82e6\u77ed\uff0cpy\u662f\u5cb8' >>> print s 人生苦短,py是岸

或者:
>>> s = r'\u4eba\u751f\u82e6\u77ed\uff0cpy\u662f\u5cb8' >>> s = s.decode('unicode_escape') >>> print s 人生苦短,py是岸
在python2的字符编码问题时常会遇到“UnicodeEncodeError: 'ascii' codec can't encode characters in position 0-5: ordinal not in range(128)”的编码错误。
而用以下方法通常可以解决:
1 import sys
2 reload(sys)
3 sys.setdefaultencoding('utf-8')
此方法是将Python2的默认编码ASCII改为 utf-8。但此方法不是一劳永逸的,可能会使一些代码的行为变得怪异。
这篇文章中有更多详细的说明:https://blog.ernest.me/post/python-setdefaultencoding-unicode-bytes
待续
赠人玫瑰
手留余香
我们曾如此渴望命运的波澜,到最后才发现:人生最曼妙的风景,竟是内心的淡定与从容……我们曾如此期盼外界的认可,到最后才知道:世界是自己的,与他人毫无关系!-杨绛先生
如果,您希望更容易地发现我的新博客,不妨点击一下绿色通道的【关注我】。

浙公网安备 33010602011771号