2010-07-07 33 views
15

我的設置是:無效字節序列(紅寶石1.9 +軌2.3.8 +的MongoDB + mongo_mapper)

的Linux +紅寶石1.9 +軌2.3.8 +的MongoDB + mongo_mapper

我跟着http://railscasts.com/episodes/194-mongodb-and-mongomapper,先確定一切正常。我可以成功插入英文字符串,但當插入一些中文字符串時,它會插入,但無法顯示。

該網頁顯示異常:

invalid byte sequence in US-ASCII 

我用mongo命令來查看MongoDB中的數據,這是正確的。但我不知道爲什麼rails不能顯示它們。

在此先感謝

回答

20

請在您的environment.rb中添加以下行。

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

問題就解決了。

+0

確保在配置塊中添加這些行*。 – 2013-11-18 04:56:31

5

我有一個Rack應用程序出現此錯誤。

添加

Encoding.default_external = Encoding::UTF_8 

    Encoding.default_internal = Encoding::UTF_8 

config.ru解決對我來說。

18

您可以更正此錯誤寫這篇

export LC_ALL="en_US.UTF-8" 

~/.profile~/.bash_profile或相似。它像一個魅力。

+0

謝謝!我一直在爭取Heroku與這個Jekyll應用程序運行幾個小時。我用'heroku config:add LC_ALL =「en_US.UTF-8」' – blockloop 2013-09-28 15:04:01

+0

解決了這個問題,這也解決了在使用Jekyll的embed命令行中使用grunt時WebStorm 7中的一個問題。 – 2013-11-07 01:52:57

0

檢查您的操作系統的locale設置。您需要設置en_US .UTF-8`語言環境變量,否則您可能會遇到此問題。

如果您的操作系統是Ubuntu,那麼您可以通過輸入以下命令來檢查您的locale

sudo locale 

,然後你可以通過鍵入以下命令

sudo locale-gen en_US.UTF-8 

它可以幫助您重新配置您的語言環境。謝謝。

1
cd $HOME 
vi .bashrc 

添加區域下面的conf:

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

保存並運行: 源的〜/ .bashrc

一切都還好〜

0

對我來說,問題是,我使用一個老版本的紅寶石。 rvm use 2.0做到了。