2015-03-08 66 views
0

我想將包含Unicode數字的字符串轉換爲常用文本。例如,文件「input.txt」包含字符串'\ u0057 \ u0068 \ u0061 \ u0074',我想知道它是什麼意思。如果字符串是輸入像代碼:Python中的Unicode 3

s = '\u0057\u0068\u0061\u0074' 
b = s.encode('utf-8') 
print(b) 

它完美,但如果我想要做的文件一樣,我得到這個結果b'\\u0057\\u0068\\u0061\\u0074'

如何解決這個問題? Windows 8,文件的編碼是'windows-1251'。

+1

你不能** **可能得到你給的代碼輸出。 – 2015-03-08 18:01:55

回答

0

如果您的文件包含這些Unicode轉義序列,則可以使用unicode_escape「編解碼器」在將文件內容作爲字符串讀取後對其進行解釋。

>>> s = r'\u0057\u0068\u0061\u0074' 
>>> print(s) 
\u0057\u0068\u0061\u0074 
>>> s.encode('utf-8').decode('unicode_escape') 
'What' 

或者,你可以直接讀取的字節串與譯碼:

with open('file.txt', 'br') as f: 
    print(f.read().decode('unicode_escape'))