Python 3 utf8值解码为字符串

2024-06-09 19:49:28 发布

您现在位置:Python中文网/ 问答频道 /正文

嗨,我在用python3,我想把utf8值改成字符串(解码)

这是我的密码

s1 = '\u54c7'
print(chr(ord(s1)))  # print 哇

如果输入是一个字符就可以了,但是如何更改字符串呢?在

^{pr2}$

谢谢

编辑:=========================================================================

大家好,我更新问题

如果我得到的字符串是“s3”,如下所示,我使用replace来更改格式

但打印“s3”不显示“哇哈”在

如果我用\u54c7\u54c8\u54c8启动s4!!'并打印s4

看起来是正确的,那么如何修复s3?在

s3 = '哇哈哈!!'
s3 = s3.replace("&#x","\\u").replace(";","") # s3 = \u54c7\u54c8\u54c8!!
s4 = '\u54c7\u54c8\u54c8!!'
print(s3)  # \u54c7\u54c8\u54c8!!
print(s4)  # 哇哈哈!!

Tags: 字符串密码s3utf8解码replacepython3s4
2条回答

关于您的s3字符串,在我看来这更像是一个HTML实体或HTML格式的文本,因此请使用正确的^{},方法如下:

>>> s3 = '哇哈哈!!'
>>> from html.parser import HTMLParser
>>> 
>>> p = HTMLParser()
>>> 
>>> p.unescape(s3)
'哇哈哈!!'

或者,更简单地用^{}

^{pr2}$

引用^{}上的Python文档:

html.unescape(s)

Convert all named and numeric character references (e.g. >, >, &x3e;) in the string s to the corresponding unicode characters.
...

如果你真的在使用Python3,你不需要做任何事情。你可以直接打印字符串。您也可以将文本复制并粘贴到python字符串中,这样就可以了。在

'「哇哈哈!!」' == '\u300c\u54c7\u54c8\u54c8!!\u300d'

关于更新后的问题,区别在于逃避。如果键入字符串文本,则某些字符序列将更改为无法轻松键入或显示的字符。字符串不是作为您看到的一系列字符存储的,而是作为从“a”、“;”和“\300”等字符创建的值的列表。请注意,所有这些字符的len都为1,因为它们都是一个字符。在

要真正转换这些值,可以使用eval,这是铁拳提供的答案,或者找到一个可以转换现有字符串的库。我建议最后一个,因为围绕这类事情的规则可能很复杂,很少有简单的替代品涵盖。我不知道逃跑的特殊模式,所以我不能推荐任何东西,抱歉。在

相关问题 更多 >