2008/01/29

Pythonで文字列のエンコードを判定する

プログラムを作成していて、文字列のエンコードを判定する必要があり、いろいろ調べると・・・

chardetモジュールを使えば簡単に文字列のエンコードを判定することができるようです。chardetモジュールは標準モジュールに含まれないので別途インストールする必要があり、easy_installでインストールしました。

easy_install chardet

エンコードを判定する簡単なサンプルを作成したので、下記に掲載します。



#!/usr/bin/env python
# -*- coding: utf-8 -*-

import chardet

print chardet.detect(u"あいうえお".encode("utf8"))
print chardet.detect(u"あいうえお".encode("euc-jp"))
print chardet.detect(u"あいうえお".encode("shift_jis"))
print chardet.detect(u"あいうえお。".encode("shift_jis"))
print chardet.detect(u"あいうえお、".encode("shift_jis"))



上記のプログラムを実行すると・・・


{'confidence': 0.96906250000000005, 'encoding': 'utf-8'}
{'confidence': 0.98999999999999999, 'encoding': 'EUC-JP'}
{'confidence': 0.5, 'encoding': 'windows-1252'}
{'confidence': 0.98999999999999999, 'encoding': 'SHIFT_JIS'}
{'confidence': 0.98999999999999999, 'encoding': 'SHIFT_JIS'}


と表示されました。confidenceは判定の信頼度のようです。
何故かshift_jisは句読点を含まないとうまく判定できていないようです。

ラベル:

0 件のコメント :

コメントを投稿

この投稿へのリンク :

リンクを作成

<< ホーム