我已經越來越在Ruby 1.9的這個錯誤,Rails的3.0,ActiveRecord的3.0:爲什麼ActiveRecord使用mysql2 gem返回編碼爲ASCII-8BIT的字段?
incompatible encoding regexp match (UTF-8 regexp with ASCII-8BIT string)
發生這種情況,因爲該字符串上我想打電話給gsub
(從一個ActiveRecord對象場直接來)編碼爲ASCII-8BIT
。我讀過幾篇文章,文章和答案,說這是由mysql gem編碼錯誤造成的,並提示mysql2。
但我已經使用mysql2了。我試過的0.2.x版本和最新的0.3.7版本,並沒有解決問題:
irb> str = Discussion.first.content
=> "Something's wrong with encodings..."
irb> str.encoding
=> #<Encoding:ASCII-8BIT>
我已經改變了數據庫的編碼和編碼表在MySQL中,我也試着設置LANG env變量沒有運氣。還有其他地方我可以看看或看看爲什麼我得到這個錯誤的編碼?
下面是另一個信息:\ _ \ _ ENCODING \ _ \ _,Encoding.default_external和Encoding.default_internal都返回UTF-8 – mltsy