0

String.encode メソッドは Ruby -v 1.9.3 以降でのみ使用できることを発見しました。これを変更できない場合、私はRails環境で作業しています。このメソッドを使用して、無効な UTF-8 入力を修正しました。

私が見つけた唯一の良い代替手段は iconv.conv() メソッドを使用することでしたが、iconv は新しい Ruby バージョンでは非推奨になっているため、システム管理者がアップグレードを決定した場合でも、コードが花のような匂いがするようにしたいと考えています。

参考までに、ここから見つけた代替案:

ic = Iconv.new('UTF-8//IGNORE', 'UTF-8')
valid_string = ic.iconv(untrusted_string + ' ')[0..-2]

ありがとう!

4

1 に答える 1

1

charlock_holmes gemを見てください。これは、1.9 より前のエンコーディングのニーズのほとんどをカバーしていました。

于 2013-03-11T15:03:56.850 に答える