「\u0161\u010D\u0159\u017E\u00FD」などの UTF-8 形式の文字列を使用すると問題が発生します。そのような文字列が私のプログラムで変数として定義されている場合、正常に動作します。しかし、そのような文字列を外部ファイルから読み取って使用すると、間違った出力が得られます(必要な/期待するものが得られません)。確かに、必要なエンコーディングがいくつか欠けています...
私のコード:
file = "c:\\...\\vlmList_unicode.txt" #\u306b\u3064\u3044\u3066
data = File.open(file, 'rb') { |io| io.read.split(/\t/) }
puts data
data_var = "\u306b\u3064\u3044\u3066"
puts data_var
出力:
\u306b\u3064\u3044\u3066 # what I don't want
について # what I want
「rb」を指定してバイナリ形式でファイルを読み取ろうとしていますが、明らかに他に問題があります...JRuby 1.7.3でビルドしてNetbeans 7.3.1でコードを実行します(Ruby 2.0.0も試しましたでも効果なし。)
私はRubyの世界に慣れていないので、どんなアイデアでも大歓迎です...