2014-03-02 159 views
1

美好的一天! 我在解码文本到unicode时遇到了麻烦。 我需要STR等于转换为将str转换为python中的unicode

'\u4038' # or something like that  

在ASCII,我需要这个字符串转换为Unicode的一个象征。你能解释一下<该怎么做? 的

len(unicode('\u4038')) 

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

如果它需要的话,所产生的符号是在大多数情况下,西里尔。

+0

你的意思是你有一个字符串''\\ u4038''? – falsetru

+1

为什么你有这个字符串?它从何而来?如果你打印它,你看到了什么?如果这是来自JSON,你需要['json'](http://docs.python.org/2/library/json.html)模块。 – user2357112

+0

如果你需要'unicode-escape',那么你的数据管道中就有些东西坏了。找到''\ u4038''的来源并修复它,而不是使用'unicode-escape'编码。 – jfs

回答

3

如果你的意思是你有一个字符串'\\u4038',您可以使用unicode-escape encoding

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

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

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

有可能是一个更好的办法,但在这里是一个:

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

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