2

I need to write to html file some data, which could be non-english, now my code:

File.open('text2.html', 'wb') do |fo|
  fo.write body_text3
end

also i try

File.open('text2.html', 'wb') do |fo|
  fo.write body_text3.encode('UTF-8')
end

but i get error: :

in `encode': "\xD0" from ASCII-8BIT to UTF-8 (Encoding::UndefinedCon...

how could i save webpage with russian symbols?

also what i need to write, so that i could operate with nokogiri with my russian page? need i to do some conversations, or just # coding: utf-8 on top of code is enough?

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から始めて、それが実際にはASCII-8BITであることを Ruby に知らせます。そうではないので、ゴミになります。次に、Ruby にエンコードしてUTF-8に戻すように依頼します。

Yehuda Katz による良いブログ: Ruby 1.9 Encodings: A Primer and the Solution for Rails

于 2013-10-04T21:45:57.267 に答える