如何使用Python 3将字符串中的所有unicode代码 "翻译 "成实际符号?

问题描述 投票:0回答:1

我正在解析网页内容,以分离出某网站的新闻文章正文,为此我使用urllib.request来检索文章网页的源代码,并分离出正文。但是,urllib把 "ç "这样的字符作为它的utf-8符号 "c387 "放到python字符串中。对于'"'和"""字符,它也是这样做的,打印成'e',后面跟着一组数字。这在试图阅读文章时非常恼火,因此需要解决。我可以在文章中循环,用一个繁琐的函数将每一个可识别的utf-8代码改成实际的字符,但我想知道是否有一种方法可以更容易做到这一点。

举个例子,我的程序当前的输出结果可能是。e2809eThis country doesn't...e2809d

我希望它是:„This country doesn't...”

注: 我已经检查了网页的源代码,它只是使用了这些 "特殊 "字符,所以这肯定是urllib的问题。

先谢谢你了!

python unicode utf-8 urllib non-ascii-characters
1个回答
1
投票

urllib返回的是字节。

>import urllib
>url = 'https://stackoverflow.com/questions/62085906'
>data = urllib.request.urlopen(url).read()
>type(data)
bytes
>idx = data.index(b'characters like')
>data[idx:idx+20]
b'characters like "\xc3\xa7"'

现在,让我们试着把它解释为utf -8:

>data[idx:idx+20].decode('utf-8')
'characters like "ç"'

8: Et voilà!

© www.soinside.com 2019 - 2024. All rights reserved.