ひさしぶりにnetbeansを起動してプログラム。忘れそうなのでちょっと自己メモ。
症状:Windowsで動作したプロジェクトがmacで動作しない。どうやらこのプロジェクトで読み込んでいるCSVファイルのファイル名が文字化けしているようだ。
環境:Rubyプロジェクト(NAGARE)ではMS-Excelと連携するため文字コードをShift_JISに設定している。ただしNetbeansプロジェクトはDropBox上に置いている。
対応:パスの文字列(Stringクラスのインスタンス)に.toutf8を付加して文字列をShift_JISからUTF-8に変換する。.toutf8メソッドを追加するrbファイルにはrequire 'kconv'を追加しなければならない。パスの区切り記号を\から/に変える。この2点でCSVファイルにアクセスできるようになる。
補足:DropBox(クライアント)のファイル名はどうやら各OSにあわせて自動的に変換するようだ。Windowsで保存したファイル名はShift_JIS(Windows-31J?)、macでそのファイルを見るとUTF-8になる。ありがたいことだけどプログラムコードの文字列は固定なのでその変化に追従しない。実行環境にあわせてデバッグスイッチを働かせるしかないのかな。。。Rubyではどうやるんだろう?