未だにpythonでの日本語の扱い方を間違えることがあるので、気を付けるべき場所に気づき次第まとめていきます
(英語以外のすべての文字に言えることですが、とりあえず日本語用、としておきます)
ひとまずは2系向けの内容にしておきます。

日本語が入ったファイルを読み込むとき

import codecs
jp_file = codecs.open('nihongo.txt', 'r', 'utf-8')

とりあえずこうしておけばファイルから読み込んだ内容をunicodeの文字集合に割り当ててくれる
(ファイルのエンコード方式にかかわらずunicode型になる)

コードに日本語を書きたい時

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

nihongo = '日本語が書ける'
# 日本語のコメントも書けるようになる

# -- coding: utf-8 --とやってコードのエンコード形式を明示してやらないと、
pythonはコードがASCII(英数字と簡単な記号しかない)でエンコードされていると解釈してしまう

日本語が含まれるunicode型文字列を出力したい時

nihongo = 'ああああ'
print nihongo.encode('utf-8')

pythonは外部に文字を出力する際、エンコード形式を明示してやらないとASCIIで(略
printだけでなくファイル出力の際も同じ

Sign up for free and join this conversation.
Sign Up
If you already have a Qiita account log in.