Tôi đã được nhận được lỗi này trong Ruby 1,9, Rails 3.0, ActiveRecord 3.0:Tại sao ActiveRecord trả lại các trường được mã hóa dưới dạng ASCII-8BIT ngay cả với đá quý mysql2?
incompatible encoding regexp match (UTF-8 regexp with ASCII-8BIT string)
này đang xảy ra bởi vì các chuỗi trên mà tôi đang cố gắng để gọi gsub
(mà đến trực tiếp từ một lĩnh vực đối tượng ActiveRecord) có mã hóa ASCII-8BIT
. Tôi đã đọc một số bài báo, bài viết và câu trả lời nói rằng điều này là do đá quý mysql mã hóa những điều sai trái, và gợi ý mysql2.
Nhưng tôi đang sử dụng mysql2 rồi. Tôi đã thử một phiên bản 0.2.x và phiên bản mới nhất 0.3.7 và không giải quyết vấn đề:
irb> str = Discussion.first.content
=> "Something's wrong with encodings..."
irb> str.encoding
=> #<Encoding:ASCII-8BIT>
Tôi đã thay đổi mã hóa cơ sở dữ liệu và mã hóa bảng trong MySQL, tôi cũng đã cố gắng thiết lập Biến LANG env không có may mắn. Có nơi nào khác tôi có thể xem hoặc để xem tại sao tôi nhận được mã hóa sai này?
Dưới đây là một số thông tin khác: \ _ \ _ ENCODING \ _ \ _, Encoding.default_external và Encoding.default_internal tất cả trả về UTF-8 – mltsy