jythonの日本語周りについて
Jythonの日本語処理がよくわからないについて。
UTF-8環境と仮定して、以下のようにすれば出来ます。
(コマンドプロンプトならCP932とかにすればいいんだけど、こまったことにjythonではcodecsに"cp932"がないのでencodeでSJISバイト列に出来ません。なのでJavaのAPIで出力するのしか出来なかった)
なぜかといえば、
>>> from java.lang import String, System
>>> from com.ibm.icu.text import Transliterator
>>> print Transliterator.getInstance("Fullwidth-Halfwidth").transliterate(String(u"テスト", "UTF-8")).encode("utf-8")
テスト
>>> System.out.println(Transliterator.getInstance("Fullwidth-Halfwidth").transliterate(String(u"テスト", "UTF-8")))
テスト
>>> sys.getdefaultencoding()
'ascii'
>>> System.getProperty("file.encoding")
'UTF-8'だからじゃないかな。
例えば、こんなのでも分かる。>>> "テスト".decode("utf-8")
u'\uff83\uff7d\uff84'
>>> print "テスト".decode("utf-8")
Traceback (most recent call last):
File "", line 1, in
UnicodeEncodeError: 'ascii' codec can't encode characters in position 0-2: ordinal not in range(128)
Comments
どうせだったらトラバ撃ってくれればよかったのに。
受けられないのは、SPAMを気にしなくてもいいというメリットがあるからいいんだけど。
手動トラックバックでもうてばいいのかな。
こんなのを使うとかしかないのかな…