codepoint.py

Unicode コード・ポイントを扱う Python モジュール

公開:
2012-05-01

Unicode 文字とコード・ポイントを扱う Python モジュールです。組み込みの ord 関数や unichr 関数では物足りないあなたに。

ダウンロード

要件

関数

codepoint.codepoint(c)

Unicode 文字 c のコード・ポイントを返します。

Unicode では、エンコーディングによってはひとつのコードポイントの文字が複数のコードポイントの組み合わせで表現される場合があります(サロゲート・ペア)。この関数はサロゲート・ペアを本来のコードポイントに復元して返します。たとえば、codepoint.codepoint(u'\ud842\udf9f')134047 (0x20b9f) を返します。u'\ud842\udf9f'u'\U00020b9f' (U+20B9F) をサロゲート・ペアで表わした表現です。

codepoint.unichr(cp)

コード・ポイント cp に相当する Unicode 文字を返します。

Unicode では、エンコーディングによってはひとつのコードポイントの文字が複数のコードポイントの組み合わせで表現される場合があります(サロゲート・ペア)。このため、この関数で返される unicode オブジェクトは長さが 1 より大きい場合があります。たとえば、codepoint.unichr(0x20b9f)u'\U00020b9f' を返しますが、これはほとんどの Python のビルドで u'\ud842'u'\udf9f' の組み合わせで表現されます。組み込み関数の unichr() はこのようなコード・ポイントに対しては ValueError を発生させます。

codepoint.characters(s)

Unicode 文字列 s を文字ごとに分割したリストを返します。

Unicode では、エンコーディングによってはひとつのコードポイントの文字が複数のコードポイントの組み合わせで表現される場合があります(サロゲート・ペア)。このため返されるリストの長さは len(s) とは異なる可能性があります。そうした文字を含む文字列に対しては、for c in s: のような処理を行うとサロゲート・ペアで表現されている文字がばらばらに分割されてしまいます。

ライセンス

codepoint.py はパブリック・ドメインにあるものとします。

履歴

2012-05-04 (r2093)
パブリック・ドメインに。
2012-05-01 (r2085)
公開。

このページについてのコメントはゲストブックまたはメール <mshibata at emptypage.jp> までお寄せください。