2010-07-07 34 views
15

thiết lập của tôi là:không hợp lệ byte chuỗi trong US-ASCII (Ruby 1.9 + ray 2.3.8 + MongoDB + mongo_mapper)

Linux + của Ruby 1.9 + Rails 2.3.8 + MongoDB + mongo_mapper

Tôi đi theo http://railscasts.com/episodes/194-mongodb-and-mongomapper, mọi thứ đều OK trước tiên. Tôi có thể chèn chuỗi tiếng Anh thành công, nhưng khi tôi chèn một số chuỗi tiếng Trung, nó được chèn vào, nhưng không thể được hiển thị.

Các trang web cho thấy một ngoại lệ:

invalid byte sequence in US-ASCII 

tôi sử dụng mongo lệnh để xem các dữ liệu trong MongoDB, và đó là chính xác. Nhưng tôi không biết tại sao đường ray không thể hiển thị chúng.

cảm ơn trước

Trả lời

20

Vui lòng thêm các dòng sau vào môi trường của bạn.rb.

Encoding.default_external = Encoding::UTF_8 
Encoding.default_internal = Encoding::UTF_8 

Sự cố sẽ được giải quyết.

+0

Đảm bảo thêm các dòng * bên trong * khối cấu hình này. –

5

Tôi gặp lỗi này với ứng dụng Rack.

Thêm

Encoding.default_external = Encoding::UTF_8 

    Encoding.default_internal = Encoding::UTF_8 

để config.ru giải quyết nó cho tôi.

18

Bạn có thể sửa lỗi này bằng văn bản này

export LC_ALL="en_US.UTF-8" 

để bạn ~/.profile, ~/.bash_profile hoặc tương đương. Nó hoạt động như một say mê.

+0

Cảm ơn bạn !!Tôi đã chiến đấu với Heroku với ứng dụng Jekyll này để chạy hàng giờ liền. Tôi đã giải quyết nó bằng 'cấu hình heroku: thêm LC_ALL =" en_US.UTF-8 "' – blockloop

+0

Điều này cũng giải quyết được vấn đề trong WebStorm 7 khi sử dụng lệnh grunt từ dòng lệnh nhúng với Jekyll. –

0

kiểm tra cài đặt locale của hệ điều hành của bạn. Bạn cần phải thiết lập biến môi trường địa phương en_US .UTF-8` nếu không bạn có thể gặp vấn đề này.

Nếu hệ điều hành của bạn là Ubuntu thì bạn có thể kiểm tra locale bằng cách nhập lệnh sau.

sudo locale 

và sau đó bạn có thể tái cấu hình miền địa phương của bạn bằng cách gõ lệnh sau

sudo locale-gen en_US.UTF-8 

Nó có thể giúp bạn. Cảm ơn.

1
cd $HOME 
vi .bashrc 

add locale conf dưới đây:

export LANG="en_US.UTF-8" 
export LC_ALL="en_US.UTF-8" 
export LC_CTYPE=en_US.UTF-8 

lưu và chạy: nguồn ~/.bashrc

Mọi thứ đều ổn ~

0

Đối với tôi, vấn đề là tôi đã sử dụng một phiên bản cũ của ruby. rvm use 2.0 đã thực hiện thủ thuật.

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