utf8/utf16意外のrubyファイルを取り扱う

  • 概要

    hmRb/IronRubyは、「utf8(BOM有り)」「utf16(BOM有り)」
    は、「DoFile」で自動的に判別して読み込むことが可能です。

    又、BOMが無いファイルをDoFileしようとした際には、デフォルトではutf8(BOM無し)とみなします。

    それ以外の特別な文字コードの「.rb」を「DoFile」で読み込ませたい場合には、自動判別が出来ないため、
    SetCodePage関数でコード番号を指定してください。

  • cp932(ShiftJIS)の.rbファイル

    BOMが無いファイルをDoFileしようとした際には、デフォルトではutf8(BOM無し)とみなしますが、
    SetCodePage関数によって、これを変更することが出来ます。

      #dll = loaddll( hidemarudir + @"\hmRb.dll" );
      
      #r = dllfuncw( #dll, "SetCodePage", 932 ); // BOMが無いファイルをDoFileしたら、cp932(sjis)とみなす。BOMがあるファイルはBOM情報に従う。
      
      #r = dllfuncw( #dll, "DoFile", currentmacrodirectory + "\\test.rb" )
      
      freedll(#dll);
      

    注意点としては以下の2つとなります。

    • 文字コードの明示的な指定

      #r = dllfuncw( #dll, "SetCodePage", 932 ); // cp932(sjis)

      BOMが無いファイルをDoFileしたら、cp932(sjis)とみなして読み込むことを明示します。
      BOMがあるファイルであれば、932と指定していたとしても、ちゃんとBOM情報に従って読み込みます。

  • codingの指定

    「#coding:cp932」などと指定して下さい、

    例えば、以下のような「test.rb」を用意し、cp932(sjis)で保存します。

      #coding: cp932
      
      $hm.debuginfo("文字コードの例");