IronRuby 日本語処理 (その2)

| コメント(0) | トラックバック(0) このエントリーを含むはてなブックマーク

IronRuby IronRuby 日本語処理 で IronRuby 0.9.1 では日本語処理が動作しないとあったが、一部、調査不足があった。実際には -Ks を付けることで動作するようだ。

 

 

問題となったコードを再び掲載しておく

p Dir.glob('/test2/*')
p Dir.glob('/test/*')

 

この2行目で日本語文字列を読み込み例外を起こしていたが、-Ks をコマンドラインオプションにつけ実行することで動作可能のようだ。

改めて実行結果を表示しておく。

20091026_IronRubyC2.png

よく考えると、この挙動は正しいような気がしてきた。-KでOSのエンコーディングを指定したと考える場合である。(ただ -Ks は Rubyがスクリプトなどを解釈したりするとき、文字列をどのようなエンコーディングされているかを識別するかを指定しているので、正しくはない)。もちろん -K で十分かというと不十分であり、それが1.9.1等では対処されていると考えるのが正しいかもしれない。

例えば ruby を 使って WEB アプリケーションを実装することを考えてみる。生成するhtmlは、様々な事を考慮すると UTF-8 で出力したくなると考えられる。そうすると -Ku を指定するのが妥当のように考える。しかし、ファイルシステム等が UTF-8でない場合、その点を考慮する必要がある。

一般的に作成するアプリケーション全体をunicode only な考え方で作りこむのであれば、OSや入力フォーム、DBから返却された文字などを unicode にする。またOS、出力(HTML等)、DBへの書き込みを適切な文字コードへ変換するという考え方が出来る。(Unicode統一と考えたときである)

しかしrubyはCSI(Code Set Independent)な考え方から、各文字列バッファにどのようなエンコーディングか指定するようになっている。

上記を踏まえ-K オプションはいったいどのような目的なのか調査の必要があるが、それを踏まえ、IronRubyはどのような思想なのか解明の必要があると考える。

詳しくは、もちょっと続けようかと思う。

トラックバック(0)

トラックバックURL: http://www.m-tea.info/mt-tb.cgi/7

コメントする

あわせて読みたいブログパーツ

このブログ記事について

このページは、k1ha410が2009年10月26日 09:12に書いたブログ記事です。

ひとつ前のブログ記事は「IronRuby 日本語処理」です。

次のブログ記事は「IronRuby 日本語処理(その3)」です。

最近のコンテンツはインデックスページで見られます。過去に書かれたものはアーカイブのページで見られます。