このエントリーをはてなブックマークに追加

rotunicodeを使う

いつか使う時の備忘録のために書いておきます。

boxからrotunicodeというPythonライブラリが公開されています。

https://github.com/box/rotunicode

これは、latin-1のASCII文字列を、ASCII文字列に似たUnicode文字列に変換してくれるライブラリです。

こんな感じでcodecに登録しておくと、encode関数で指定できるようになります。

import codecs
from box.util.rotunicode import RotUnicode

codecs.register(RotUnicode.search_function)

print('Testing rotunicode'.encode('rotunicode'))
>>> Ƭȅŝƭȉńġ ŕőƭȕńȉćőďȅ
print('Ƭȅŝƭȉńġ ŕőƭȕńȉćőďȅ'.decode('rotunicode'))
>>> Testing rotunicode

なんに使うの?

Unicodeでもちゃんと動くかどうかのテストが簡単にできます。

import os, errno

name = 'foo'.encode('rotunicode')
os.mkdir(name)

print(name)
>>> ƒőő

この時、例えば「あいうえお」などの日本語文字列を使うと、英語話者から見れば「こんな見たこともない文字使うやついねーし」などと思われてしまうかもしれません。

しかし、このrotunicodeeを使うと、元となったASCII文字列に似たUnicode文字列が出てきます。そのため、「あれ、これはなんか使うかもしれないな…」と思ってくれるかもしれない、という効果がわずかながらでも期待できます。たぶん…