【发布时间】:2010-11-20 18:50:30
【问题描述】:
我在UTF-16LE 中有以下名为test.rb 编码的文件
# encoding: UTF-16LE
test = "test!"
p test
使用以下命令运行它不会产生任何结果
ruby ./test.rb
我在这里错过了什么?
如果有人想知道,我尝试将源设置为 UTF-16LE 编码的原因是我正在使用 UTF-16LE 输入和输出文件编码。我的印象是,如果我在读取文件时正确设置编码并在输出时正确设置编码并且我在源代码中正确设置了# encoding:,那么一切都应该正常工作。如果有人对此(或更简单的方法)有任何问题,请随时告诉我。
【问题讨论】:
-
以编码方式编写源代码与读取或写入文件的编码方式无关。
-
@Greg 那么你的意思是,如果我的源代码是 UTF-8 并且我将字符串写入 UTF-16LE 文件,它会自动转换为正确的编码?跨度>
-
没有。它不会自动转换。您必须告诉 Ruby 您的文件 I/O 的编码方式。请参阅 Mladen Jablanović 的回答,因为他为您指明了正确的方向。
-
澄清一下:如果我告诉 ruby 将我的输出文件编码为 UTF-16,我的所有字符串会在写入之前进行转换吗?字符串编码是源文件编码(除非指定),对吧?
标签: ruby macos encoding utf-16le