UTF8 が無効な RSS フィードを YouTube から取得しています。を使用して同様のルビ文字列を作成できます
bad_utf8 = "\u{61B36}"
bad_utf8.encoding # => #<Encoding:UTF-8>
bad_utf8.valid_encoding? # => true
Ruby はこれが有効な UTF-8 エンコーディングであると考えていますが、そうではないことは確かです。
Mysqlと話すと、次のようなエラーが発生します
require 'mysql2'
client = Mysql2::Client.new(:host => "localhost", :username => "root")
client.query("use test");
bad_utf8 = "\u{61B36}"
client.query("INSERT INTO utf8 VALUES ('#{moo}')")
# Incorrect string value: '\xF1\xA1\xAC\xB6' for column 'string' at row 1 (Mysql2::Error)
MySQL に送信する前に、これらの無効なタイプのエンコーディングを検出または修正するにはどうすればよいですか?