2016-07-01 21 views
0

私は、Python 3.xでUnicode文字列を構築して印刷しようとしています。 ユニコード文字列を構築する

a = '\u0394' 
print(a) 
Δ 
しかし、私は2つの文字列を追加することで、これを構築しようとした場合、私はいくつかの問題を抱えて::だから、例えば、以下では正常に動作します私はここで何を

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を使用したい:私は最初のベースに整数として16進文字列0394を解釈たとえば、用

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

がPython文字列リテラルエスケープ表記を生成する必要がある場合は、unicode_escapeコーデックを使用してcodecs.decode()を使用してください。

>>> import codecs 
>>> r'\u' + '0394' 
'\\u0394' 
>>> codecs.decode(r'\u' + '0394', 'unicode_escape') 
'Δ' 
関連する問題