2014-03-02 101 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