2012-03-27 19 views
6

Tôi nhận được lỗi này trong môi trường sản xuất của mình (CentOS 5.6), nhưng nó chạy tốt trong phát triển (Ubuntu 11.04). Trong cả hai môi trường, ứng dụng đang sử dụng Ruby 1.9.3 và Rails 3.0.9 và được phục vụ với hành khách và nginx. Phiên bản đá quý cơ giới hóa của tôi là 2.3.Làm thế nào để ngăn chặn lỗi "chuyển đổi mã không tìm thấy (UTF-8)"?

code converter not found (UTF-8)

Dòng cuối cùng của mã này gây ra nó:

mech = Mechanize.new 
page = mech.get("http://myurl.com/login.php?login_name=a&password=b") 
form = page.form_with(:name => "loginForm") 
form.field_with(:name => "active_pgm").value = '1' 
page = form.submit 

Bất kỳ ý tưởng? Tôi có config.encoding = "utf-8" trong ứng dụng của mình.rb.

+0

Bạn có một stacktrace xung quanh? Và ENV trên cả hai máy. – Reactormonk

+0

Chắc chắn. Nó quá lớn để dán nên đây là một liên kết: http://pastebin.com/S41Z4zK6 – dgmdan

Trả lời

1

Thử thay đổi ứng dụng của bạn.rb để đọc config.encoding = "UTF-8". Tôi không chắc chắn lý do tại sao đó sẽ là một vấn đề nhưng nó là giá trị một shot kể từ khi lỗi phàn nàn về việc không tìm thấy 'UTF-8' (chữ hoa).

+1

Cảm ơn bạn đã đề xuất nhưng tôi vẫn gặp lỗi. – dgmdan

1

Đây là một ảnh dài nhưng có lẽ nó sẽ giúp bạn, bởi vì tôi đã thấy các lỗi tương tự trên RHEL đối với các đá quý phân tích cú pháp khác.

Các giải pháp tôi tìm thấy là không trong Rails - nó đã được bổ sung thêm những dòng này vào môi trường hệ thống:

LANGUAGE=en_US.UTF-8 
LC_CTYPE=en_US.UTF-8 
LC_ALL=en_US.UTF-8 
+0

Cảm ơn nhưng nó không giúp được gì. Để giữ cho ứng dụng của tôi hoạt động, tôi đã chuyển bản sao sản xuất sang máy ubuntu và tất nhiên vấn đề không xảy ra ở đó. Tôi có thể thử thiết lập một máy centos mới và xem tôi có được cùng một thứ hay không. – dgmdan

Các vấn đề liên quan