Dies Aliquanti

スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

Rubyで漢字コードの自動変換

 先週から、だらだらやっていた、録画スケジューラのプログラムの修正(Linuxベース化)だが、だいたい終わりました。Windowsでも動作するように書いているつもりですが果たしてどうですかね。
 いつもながら「漢字」コードの取り扱いが厄介です。RubyではKconvというモジュールを使って漢字コードの変換ができますが、インタプリタの漢字コードは$KCODEというグローバル変数に保持しています。そこで、$KCODEから、Kconvでの漢字コードの指定ができるように変換する関数を作りました。
 さらにStringクラスにkconvAuto()というメソッドを追加して、インタプリタの漢字コードに自動で変換するようにしてみました。こんなことって普通に必要だと思うのですが、実はなにかいい方法があったりするのでしょうか?

#
## Kanji Helper
# (c)2009 BO
#
#
require 'kconv'
module KanjiHelper

  @@KCODE2KCONVCODE = { "EUC" => Kconv::EUC ,
        "SJIS" => Kconv::SJIS ,
        "UTF8" => Kconv::UTF8 ,
        "NONE" => Kconv::ASCII }

  def self.kcode2kconv( kcode = $KCODE )
    @@KCODE2KCONVCODE[ kcode ]
  end #def kcode2kconv( kcode = $KCODE )

end #module To_WinFileName

# adding to String class

class String
  include KanjiHelper

  def kconvAuto( out_code = KanjiHelper::kcode2kconv(), in_code = Kconv::AUTO )
    self.kconv( out_code, in_code )
  end # def kconvAuto( out_code = KanjiHelper::kcode2kconv(), in_code = Kcobv::AUTO )


end # class String




コメント

コメントの投稿


管理者にだけ表示を許可する

トラックバック

トラックバック URL
http://diesaliquanti.blog.fc2.com/tb.php/698-7795b348
この記事にトラックバックする(FC2ブログユーザー)

FC2Ad

まとめ

上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。