您好我正在使用python3,我想将utf8值更改为字符串(解码)
这是我现在的代码
s1 = '\u54c7'
print(chr(ord(s1))) # print 哇
如果输入是一个char但是如何更改字符串呢?
s2 = '\u300c\u54c7\u54c8\u54c8!!\u300d'
print(chr(ord(s2))) # Error! I want print "「哇哈哈!!」"
由于
编辑:============================================= ===================
大家好,我更新了问题
如果我得到的字符串是“s3”,如下所示,我使用替换来改变格式
但是打印“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) # 哇哈哈!!
答案 0 :(得分:4)
如果您实际上正在使用python3,则无需执行任何操作。你可以打印字符串。此外,您只需将文字复制并粘贴到python字符串中即可。
'「哇哈哈!!」' == '\u300c\u54c7\u54c8\u54c8!!\u300d'
关于更新的问题,区别在于逃避。如果键入字符串文字,则某些字符序列将更改为无法轻松键入或显示的字符。字符串不会存储为您看到的一系列字符,而是存储为由“a”,“;”和“\ 300”等字符创建的值列表。请注意,所有这些都具有len为1,因为它们都是一个字符。
要实际转换这些值,您可以使用eval
,Iron Fist提供的答案,或找到转换您拥有的字符串的库。我会建议最后一个,因为围绕这些事情的规则可能很复杂,很少被简单的替换所覆盖。我不认识逃逸的特殊模式,所以我不能推荐任何东西,抱歉。
答案 1 :(得分:2)
关于您的s3
字符串,我觉得这更像是HTML格式的HTML实体或文字,因此请使用正确的html.parser
:
>>> s3 = '哇哈哈!!'
>>> from html.parser import HTMLParser
>>>
>>> p = HTMLParser()
>>>
>>> p.unescape(s3)
'哇哈哈!!'
或者更简单地使用html.unescape
:
>>> import html
>>>
>>> html.unescape(s3)
'哇哈哈!!'
引用html.unescape
上的Python文档:
html.unescape(s)
将字符串s中的所有命名和数字字符引用(例如>,>,& x3e;)转换为相应的unicode字符。
...