如何在python中正确地将长文本正确编码为utf-8? [关闭]

问题描述 投票:0回答:2
我们可以使用此方法将文本编码为utf-8

print u"\u221A".encode('utf-8')

但是,我们如何编码这样的文本?

[<p>d = \u221a2RH</p>, <p>d = 2Rlh</p>, <p>d = 2Rl\u221ah</p>, <p>d = 2Rh</p>]

以上文字是从抓取网页中获得的输出数据。它可以包含多行文本或单行文本。

在抓取多个HTML文本之后,我们将其存储在列表中。

python unicode utf-8 python-unicode
2个回答
1
投票
似乎您的最终目标是转换

[<p>d = \u221a2RH</p>, <p>d = 2Rlh</p>, <p>d = 2Rl\u221ah</p>, <p>d = 2Rh</p>]

进入

[<p>d = √2RH</p>, <p>d = 2Rlh</p>, <p>d = 2Rl√h</p>, <p>d = 2Rh</p>]

使用“编解码器”模块(文档:https://docs.python.org/3/library/codecs.html),有一种简单的方法可以实现此目的

代码:

import codecs obj = '[<p>d = \u221a2RH</p>, <p>d = 2Rlh</p>, <p>d = 2Rl\u221ah</p>, <p>d = 2Rh</p>]' codecs.encode(obj, encoding='utf-8', errors='strict') print(obj)

输出:

[<p>d = √2RH</p>, <p>d = 2Rlh</p>, <p>d = 2Rl√h</p>, <p>d = 2Rh</p>]


0
投票
自己找到答案。

只需在此字符串前添加“ u”,它将为您提供预期的输出。

print u"[<p>d = \u221a2RH</p>, <p>d = 2Rlh</p>, <p>d = 2Rl\u221ah</p>, <p>d = 2Rh</p>]".encode('utf-8')

输出是

[<p>d = √2RH</p>, <p>d = 2Rlh</p>, <p>d = 2Rl√h</p>, <p>d = 2Rh</p>]

等待别人的回答来检查某人是否拥有与我的代码相比有效且高效的代码。
© www.soinside.com 2019 - 2024. All rights reserved.