我需要向html文件写一些数据,这些数据可能是非英语的,现在是我的代码:
File.open('text2.html', 'wb') do |fo|
fo.write body_text3
end
我也试试
File.open('text2.html', 'wb') do |fo|
fo.write body_text3.encode('UTF-8')
end
但我收到错误:
中的`encode':“\ xD0”从ASCII-8BIT到UTF-8
(编码:: UndefinedCon ...
我怎么能用俄文符号保存网页?
我还需要写什么,以便我可以用我的俄语页面与nokogiri一起操作?需要我做一些对话,或者只是#coding:在代码之上的utf-8就够了吗?
答案 0 :(得分:4)
File.open('text2.html', 'wb') do |fo|
fo.write body_text3.force_encoding('ASCII-8BIT').encode('UTF-8')
end
以下是解释:
在这里,我们从 UTF-8 开始,然后我们让Ruby知道它实际上是 ASCII-8BIT 。它不是,所以只会导致垃圾。然后我们要求Ruby将这些编码重新编入 UTF-8 。
Yehuda Katz的好博客:Ruby 1.9 Encodings: A Primer and the Solution for Rails。