2

我需要向 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 (Encoding::UndefinedCon...

我怎样才能用俄语符号保存网页?

还有我需要写什么,以便我可以在我的俄语页面上使用 nokogiri 操作?需要我进行一些对话,或者只是在代码之上 #coding: utf-8 就足够了吗?

4

1 回答 1

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

于 2013-10-04T21:45:57.267 回答