//
you're reading...
Codes, Rails, Ruby

Sửa Lỗi: Encoding::CompatibilityError Trong Rails

Khi mình lập trình sử dụng Rails trong môi trường Ruby 1.9.2 với Rails 2.3.10 thì gặp phải vấn đề trong việc hiện thị tiếng Việt (UTF-8) ra trang web thông qua các layout (sử dụng yield với content_for), từ đó sẽ phát sinh ra 1 lỗi tương tự như sau:

Encoding::CompatibilityError in Admin/chude#index

Showing app/views/admin/chude/index.html.erb where line #69 raised:

incompatible character encodings: IBM437 and UTF-8

Lỗi phát sinh là do chưa cấu hình encoding mặc định cho việc truyền dữ liệu trong Rail là encoding theo kiểu UTF-8, và trong khi đó dữ liệu truyền giữa các layout vừa bao gồm kiểu UTF-8 và các kiểu khác nhau sẽ dẫn tới phát sinh lỗi “Encoding::CompatibilityError“. 

Để khắc phục lỗi, bạn thử đặt dòng lệnh sau đây vào trong tập tin enviroment.rb của project Rails:

Encoding.default_external = Encoding::UTF_8

~Fri3ng3R~

Advertisements

Discussion

No comments yet.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: