PythonソースでUTF-8エンコーディングを使用する [重複] 質問する

PythonソースでUTF-8エンコーディングを使用する [重複] 質問する

考慮する:

$ cat bla.py 
u = unicode('d…')
s = u.encode('utf-8')
print s
$ python bla.py 
  File "bla.py", line 1
SyntaxError: Non-ASCII character '\xe2' in file bla.py on line 1, but no encoding declared; see http://www.python.org/peps/pep-0263.html for details

ソースコードで UTF-8 文字列を宣言するにはどうすればよいですか?

ベストアンサー1

Python 3では、UTF-8がデフォルトのソースエンコーディングです(ペップ3120) なので、Unicode 文字はどこでも使用できます。

Python 2 では、ソース コード ヘッダーで次のように宣言できます。

# -*- coding: utf-8 -*-
....

これについては、ペップ0263

次に、文字列で UTF-8 を使用できます。

# -*- coding: utf-8 -*-

u = 'idzie wąż wąską dróżką'
uu = u.decode('utf8')
s = uu.encode('cp1250')
print(s)

おすすめ記事