2012-08-26 139 views
0

我有一个奇怪的编码问题,或者我这样做很简单,错误的方式。也许有人有一个想法会发生什么。信息:我是红宝石新手!ruby​​ on rails - heroku postgres - 编码

我有一个景观名称阵列,他们有像'äüöéèà...'这样的特殊字符。在我的表单中,我希望用户选择这些景观的多个项目。于是我开始跟所有的景观名称的select_tag:

<%= select_tag 'model[landscapes][]', options_for_select(AVAILABLE_LANDSCAPES, @landscapes_selected), { :multiple => true, :size =>5, :id => "model_landscapes" } %> 

在我的模型我在数据库中保存这些名称和一切工作正常。我已经在景观字符串中使用了这些特殊字符的大数据库。现有的景观条目以'ländscape1,lsndscape2,blalilü'给出。我在保存或从数据库获取数据方面没有问题。在我的本地机器上使用mysql数据库,这工作正常!但是当我在heroku上运行我的应用程序时,我遇到了编码问题。当我用'â'字符保存一个字符串时,它用'\ xC3 \ xA2'保存。

+0

从未使用过heroku。但是,你的服务器和客户端来自postgres的编码是什么?您可以运行这些命令“show server_encoding; show client_encoding;” – user673207

+1

另一件要检查的事项是:确保在每个文件的顶部有'#encoding:utf-8'这行,该文件具有硬编码的特殊字符。 – user673207

+0

我在哪里可以运行这些命令,如'show server_encoding'? –

回答

1

我不知道为什么这个问题只出现在我在heroku上运行我的应用程序!

但是,这个工作对我来说:

我的错误是我保存到选定的风景在我的数据库字符串!

serialize :landscapes 

保存和加载我的景观作为一个数组,然后我没有编码问题!