【Python】UTF-8の基本
pythonの文字コードの扱い方。
まず、勘違いしていたらどうしようもないので一応。
unicode≠utf-8
まぁ、比べること自体無茶なんだけど、一応。
実例 (LinuxのUTF-8モードのターミナルを使用)。
UTF-8なほげ
>>> hoge_utf8 = 'ほげ'
>>> hoge_utf8
'\xe3\x81\xbb\xe3\x81\x92' ←hoge_unicodeと異なる
>>> print hoge_utf8
ほげ
Unicodeなほげ
>>> hoge_unicode = unicode(hoge_utf8, 'utf-8')
>>> hoge_unicode
u'\u307b\u3052' ←hoge_utf-8と異なる
>>> print hoge_unicode
ほげ
printするとどちらも”ほげ”と出力されてしまう。hoge_utf8とhoge_unicodeはもちろん異なる値だ。
unicodeオブジェクトにはencodeとdecodeというメソッドがある。
>>> hoge_unicode.encode('utf-8')
'\xe3\x81\xbb\xe3\x81\x92' ←hoge_utf-8と同じ
>>> hoge_unicode.encode('cp932')
'\x82\xd9\x82\xb0' ←Shift JISっぽいやつ
ソースファイルにUTF-8で日本語などを書くときは1行目に
# -*- coding: utf-8 -*-
を入れて、UTF-8形式で保存する。
ラベル: python

0 件のコメント:
コメントを投稿
登録 コメントの投稿 [Atom]
この投稿へのリンク:
リンクを作成
<< ホーム