在Python中将字符串转换为Unicode

1 投票
2 回答
1065 浏览
提问于 2025-04-17 20:30

大家好!

我在把文本解码成unicode时遇到了一些麻烦。

我需要把一个字符串(它的值是

    '\u4038' # or something like that       

)转换成一个unicode符号。你能告诉我怎么做吗?

这个

    len(unicode('\u4038')) 

打印出来是6,所以这不是一个解决办法 :(

如果有必要的话,最终得到的符号大多数情况下是西里尔字母。

2 个回答

2

可能有更好的方法,但这里有一种:

In [27]: s = r'\u4038'

In [28]: len(ast.literal_eval('u"' + s + '"'))
Out[28]: 1
3

如果你说的是你有一个字符串 '\\u4038',你可以使用 unicode-escape 编码 来处理它:

>>> s = b'\\u4038' # == br'\u4038'

>>> print(s)
\u4038
>>> len(s)
6

>>> print(s.decode('unicode-escape'))
䀸
>>> len(s.decode('unicode-escape'))
1

撰写回答