如何将采用Unicode编码的文本内容转换成utf-8编码

本文探讨了在爬虫过程中遇到Unicode编码的问题及解决方法。通过实例“鬼滅之刃”的编码转换,揭示了如何利用Python处理Unicode转UTF-8编码,避免转义字符带来的困扰。

标题

在网站上爬取信息时,有时会遇到爬取的文本内容选择的是Unicode编码,这样爬取下来的文本内容也相应的采用Unicode编码,这样就无法显示正常的汉字,对我们的阅读带来了非常大的不便,这时候该怎么办呢。

比如以下Unicode文本内容
‘\\u9b3c\\u6ec5\\u4e4b\\u5203’
转换成utf-8意思是“鬼滅之刃”

分析

实际上,’\u9b3c\u6ec5\u4e4b\u5203’这种Unicode文本在计算机中是存储为’\\u9b3c\\u6ec5\\u4e4b\\u5203’
的形式的,如果想要正确译码成utf-8格式,需要将双斜杠还原为单斜杠。还原之后在utf-8编码环境中可以正确显示汉字。

措施

  1. 既然要匹配并改变文本内容,第一反应当然就是采用正则表达式了。然而是不是就这么简单呢。
    使用python的re模块,设置pattern为’\\’,替代的字符串设置为’\’,被替代的字符串string。如果就这样执行,python会报错,这样是无法正确执行的。
    原因很简单,因为无法只设置单斜杠,python认为单斜杠是转义字符。同理,即使设置’\\u’或者’\u’也是不行的。
    2.暂时还没想到。

好吧,写这篇博客主要是为了吐槽奇怪的编码转换问题的,太tm烦了。从写这篇博客经历的事情来说学到的东西就是,千万要小心转义字符带来的影响。

如果有人看到这篇博客,并且有更好更合理的解决方案的话可以留言告诉我hh。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值