2016-07-01 74 views
0

我想要構造並打印一個Unicode字符串與Python 3.x.因此,例如,以下工作正常:構建一個Unicode字符串

a = '\u0394' 
print(a) 
Δ 

但如果我嘗試通過追加兩個字符串來構造這個,我有幾個問題:

a = '\u' 
    File "<stdin>", line 1 
SyntaxError: (unicode error) 'unicodeescape' codec can't decode bytes in position 0-1: truncated \uXXXX escape 

a = '\\u' 
b = '0394' 
c = a + b 
print(c) 
\u4308 

缺少什麼我在這裏?

回答

2

\uhhhh是一個轉義序列,表示法用於字符串文字。你不能從零件中構造這種符號,至少不能直接這樣做。

通常,應該使用chr() function從一個整數,而不是產生單個字符:

>>> chr(int('0394', 16)) 
'Δ' 

例如,其中我首先解釋十六進制字符串0394爲整數在基部16

如果您必須生成Python字符串字面逃逸符號,使用codecs.decode()unicode_escape編解碼器:

>>> import codecs 
>>> r'\u' + '0394' 
'\\u0394' 
>>> codecs.decode(r'\u' + '0394', 'unicode_escape') 
'Δ'