1
我在Ruby(v1.9.2)中有一個以UTF-8編碼的字符串。將UTF-8編碼的字符串寫入文件
enc = __ENCODING__
=> #<Encoding:UTF-8>
s.encoding
# => #<Encoding:UTF-8>
s.each_char{|c| return false unless c.encoding == enc }
# this passes
我把字符串,並將其寫入文件:
File.open("/path/to/file.rb", "w:UTF-8") do |f|
f.write s
end
# => 39939
File.open("/path/to/file.rb", "rb").read.encoding
# => #<Encoding:ASCII-8BIT>
File.open("/path/to/file.rb", "r").read.encoding
# => #<Encoding:UTF-8>
的文件也被我用文本編輯器設置(我的TextWrangler通過串和每個字符檢查此)使用UTF-8,它也有神奇的評論集。 如何確保讀取此文件的任何ruby程序(不一定在我的控制下)認爲編碼是UTF-8?
注:我確實有一個特定的錯誤,我正在嘗試解決,但這個問題出現了,我想有一個普遍的答案。
只有使用該文件的Ruby解釋器或其他Ruby庫可以在讀取文件時識別編碼是什麼(這是代碼本身)。 OSX 10.6。 – iain