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でUnicodeEncodeErrorとなる場合に
Pythonで端末のエンコーディング取得はgetpreferredencodingでできます。 >>> import sys >>> locale.getpreferredencoding() 'cp932' 「あいうえお」と表示するスクリプト(sample.py) # -*- coding: UTF-8 -*- s = u'あいうえお' print s コマンドプロンプ...

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

PythonでUnicodeのオブジェクトとコードポイントの変換
UnicodeオブジェクトをUnicodeコードポイントに変換 >>> ord(u'あ') 12354 UnicodeコードポイントをUnicodeオブジェクトに変換 >>> unichr(12354) u'\u3042' >>> print unichr(12354) あ 8ビット文字列にordを使うとASCIIコードを取得することもできます。 >>> ord('...

Unsafe load call disabled by Gentoo
Gentoo Linux上でとあるPythonスクリプトを実行したところ Error: Unsafe load() call disabled by Gentoo. See bug #659348 のようなエラーで実行できなくなってしまいました。 以前は問題なく動いていたスクリプトです。ということで少し調べてみたところ、下の件が関係しているような感じです。 659...

コメントを残す

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