@blog.justoneplanet.info

日々勉強

Pythonで内部エンコーディングを指定する

■コード

先頭に以下の記述をする。

# -*- coding: utf-8 -*-
import sys
reload(sys)
sys.setdefaultencoding('UTF-8')

エラー

以下のようにreloadしないとエラーになる。

# -*- coding: utf-8 -*-
import sys
sys.setdefaultencoding('UTF-8')
"""
Traceback (most recent call last):
  File "<stdin>", line 1, in ?
AttributeError: 'module' object has no attribute 'setdefaultencoding'
"""

ちなみにPHPだと以下のようになる。

mb_internal_encoding('utf-8');

■入出力の文字コード

標準入出力の文字コードだって指定したい。

import sys
import codecs

sys.stdin  = codecs.getreader('utf_8')(sys.stdin)
sys.stdout = codecs.getwriter('utf_8')(sys.stdout)

まぁ、コンナ感じ。

■ファイル

あとはファイルの文字コードがあるね。

import codecs

fin  = codecs.open('hoge.txt', 'r', 'utf_8')
fout = codecs.open('fuga.txt', 'w', 'utf_8')

PHPだとmb_convert_encodingだよね。

■結論

日本語ってめんどい。。。゜(´□`。)°゜

コメントはまだありません»

No comments yet.

RSS feed for comments on this post.TrackBack URL

Leave a comment