このBlogは移転しました。今後は aish.dev を御覧ください。

pyjf - python library for Japanese language

日本語エンコーディング変換ライブラリ pykf も開発以来10年を超え、さすがにいろいろと古くなってきた。ぼちぼち大幅に手を入れようかと検討してみると、どうも原型がなくなるぐらい修正が入りそうな気配。

それでは、ということで pykf はそのままにして、新しくモジュール pyjf を起こすことにした。とりあえずプロトタイプとしてpure Python版を開発し、問題なさそうならPyRexかCython版を開発しようと思う。Python版は一通りできあがっているので、拡張モジュールの使えないGoogle AppEngineなどで使ってみてほしい。

現状での仕様は以下の通り

guess(s)

文字列 s のエンコーディングを推測する。戻り値は UNKNOWN, ASCII, SJIS, EUC, JIS, UTF8, UTF16_LE, UTF16_BE のいずれかとなる。 UTF16_LE と UTF16_BE は、文字列の先頭にBOMが付与されている場合のみ検出される。

sjistojis(s), sjistoeuc(s), euctosjis(s), euctojis(s), jistosjis(s), jistoeuc(s)

文字列 s を、異なるエンコーディングに変更する。

kanatohalf(ustr), kanatofull(ustr)

Unicode文字列 ustr に含まれるカタカナ・句読点等を、半角<->全角に変換する。

tohalf(ustr), tofull(ustr)

Unicode文字列 ustr に含まれるカタカナ・句読点等以外の、cp932に含まれる文字を、半角<->全角に変換する。

getnengo(y, m, d, letter=False)

y年m月d日の年号と年のタプルを返す。letter=Trueの場合は年号としてH/S/T/Mのいずれかを返す。

heiseitoyear(y), showatoyear(y), taishoyear(y), meijoyear(y)

平成、昭和、大正、明治の年から、西暦を返す。

wrap(ustr, maxcol)

Unicode文字列 ustr を、maxcol桁の文字列に分割する。ワードラップ・行頭禁則対応。