Pythonでnkf

Pythonで文字コードが不明な文字列(例えばインターネット上のHTMLは文字コードが間違っている場合があります)はnkfを使うと簡単に取り扱うことができるみたいです。

# emerge -pv app-i18n/nkf

These are the packages that would be merged, in order:

Calculating dependencies... done!
[ebuild   R    ] app-i18n/nkf-2.0.7  USE="python -perl"

USEフラグにpythonを付けているとPythonからnkfが使えます。

>>> import nkf
>>> nkf.nkf('-w', 'こんにちは').decode('utf-8')
u'\u3053\u3093\u306b\u3061\u306f'

手軽なので重宝しそうです。

関連記事

python-chardet
python-chardetを使った文字コード推定 使い方 >>> import chardet >>> s = 'こんにちは' >>> chardet.detect(s) {'confidence': 0.9690625, 'encoding': 'utf-8'} >>> s.decode(chardet.detect(s)['encoding']) u'\u3053\u3...

Pythonの新しい文字列書式操作
Pythonのformatを使った新しい文字列の書式操作注は、{}を使って次のようにして使います。 >>> '{0} + {1} = {2}'.format(1, 2, 1+2) '1 + 2 = 3' {0} {1} {2}が順になっている場合はポジション引数は省略可能です。 >>> '{} + {} = {}'.format(1, 2, 1+2) '1 + 2 = 3' ...

Pythonで全角を2文字として文字数を数える方法
Pythonの文字列はlen関数で文字数をカウントできますが、全角と半角の区別はしません。 >>> len(u'abcde') 5 >>> len(u'あいうえお') 5 これはこれで便利な実装なのですが、日本語のテキスト処理をしていると、等幅フォントを使ったときに幅をそろえたいなどで、全角を2文字として数えると何文字になるか調べたいことがあります。そういう場合にはunicodeda...

PythonのString Formattingを拡張
Python 3で追加されたformatを使うと文字列操作が便利になります。 使い方は次のような感じです。(参考:Pythonの新しい文字列書式操作) >>> '{0} + {1} = {2}'.format(1, 2, 1+2) '1 + 2 = 3' string.Formatterを継承すると、この文字列操作を拡張することができるそうです。 拡張の仕方は以下のような...

コメントを残す

メールアドレスが公開されることはありません。