我在使用 UTF-8 格式的字符串时遇到问题,例如“\u0161\u010D\u0159\u017E\u00FD”。当这样的字符串在我的程序中定义为变量时,它可以正常工作。但是当我通过从一些外部文件中读取它来使用这样的字符串时,我得到了错误的输出(我没有得到我想要/期望的)。绝对我错过了一些必要的编码东西......
我的代码:
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'以二进制形式读取文件,但显然还有其他问题......我在Netbeans 7.3.1中运行我的代码并在JRuby 1.7.3中构建(我也试过Ruby 2.0.0但没有任何影响。)
由于我是红宝石世界的新手,欢迎任何想法......