我有以下名为test.rb编码的UTF-16LE文件
# encoding: UTF-16LE
test = "test!"
p test使用以下命令运行它不会产生任何结果
ruby ./test.rb我在这里错过了什么?
如果有人想知道,我之所以试图将源代码设置为UTF-16‘m编码,是因为我正在使用UTF-16’m输入和输出文件编码。我的印象是,如果在读取文件时正确设置编码,在输出时正确设置编码,并且源中有正确的# encoding:设置,那么一切都应该正常工作。如果有人认为这有什么问题(或更简单的方法),可以随时通知我。
发布于 2010-11-20 20:34:44
用UTF-16编写程序,以便处理UTF-16文件,听起来就像用俄语命名变量,以便创建一个俄罗斯网站。:)
Ruby1.9支持字符串编码,James有一个关于这个主题的优秀系列文章--我认为它们是Ruby编码的参考指南。
简而言之,您可以在打开输入文件时指定它们的编码:
s = ''
File.open('utf16le.txt', 'rb:UTF-16LE') do |f| # here you set the encoding
s = f.read
end
p s.encoding
#=> #<Encoding:UTF-16LE>
p s.length
#=> 19
p s
#=> "test\nmladen\n\u0436\u045F\u0446\u0432\u0431\n\n"1.9 IO类的docs中也包含了所有内容:
http://ruby-doc.org/ruby-1.9/classes/IO.html
https://stackoverflow.com/questions/4234368
复制相似问题