标题
在网站上爬取信息时,有时会遇到爬取的文本内容选择的是Unicode编码,这样爬取下来的文本内容也相应的采用Unicode编码,这样就无法显示正常的汉字,对我们的阅读带来了非常大的不便,这时候该怎么办呢。
比如以下Unicode文本内容
‘\\u9b3c\\u6ec5\\u4e4b\\u5203’
转换成utf-8意思是“鬼滅之刃”
分析
实际上,’\u9b3c\u6ec5\u4e4b\u5203’这种Unicode文本在计算机中是存储为’\\u9b3c\\u6ec5\\u4e4b\\u5203’
的形式的,如果想要正确译码成utf-8格式,需要将双斜杠还原为单斜杠。还原之后在utf-8编码环境中可以正确显示汉字。
措施
- 既然要匹配并改变文本内容,第一反应当然就是采用正则表达式了。然而是不是就这么简单呢。
使用python的re模块,设置pattern为’\\’,替代的字符串设置为’\’,被替代的字符串string。如果就这样执行,python会报错,这样是无法正确执行的。
原因很简单,因为无法只设置单斜杠,python认为单斜杠是转义字符。同理,即使设置’\\u’或者’\u’也是不行的。
2.暂时还没想到。
好吧,写这篇博客主要是为了吐槽奇怪的编码转换问题的,太tm烦了。从写这篇博客经历的事情来说学到的东西就是,千万要小心转义字符带来的影响。
如果有人看到这篇博客,并且有更好更合理的解决方案的话可以留言告诉我hh。