我正在從YouTube獲取一些RSS提要,其中包含無效的UTF8。我可以創建一個類似的紅寶石串使用爲什麼不在Ruby中檢測到無效編碼?
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的錯誤?
所以我覺得這個問題可能是MySQL只支持基本多文種平面,其中紅寶石支持一切。 – johnf 2011-05-09 03:10:49
Ruby支持一切?從何時起? – RyanScottLewis 2011-05-09 05:49:28