2011-10-24 5 views
2

私はrvmを通してdebianシステム上でruby-1.9.2-p290と一緒にrails 3.1.1を使用します。 私のビューとmysqlデータベースにスウェーデン語の文字を使用しています。私はDBからのものを取得するページを訪問したときにUTF-8およびASCII-8BITBah! Ruby 1.9.2でレールでこのエンコーディングエラーが発生し続ける

: 私は

互換性のない文字エンコーディングを取得しておきます。

staging: 
    adapter: mysql 
    database:something 
    encoding: utf8 
    username: something 
    password: something 
    host: localhost  

production: 
    adapter: mysql 
    database:something 
    encoding: utf8 
    username: something 
    password: something 
    host: localhost 

私config.ru:

Encoding.default_external = "UTF-8" 
require ::File.expand_path('../config/environment', __FILE__) 
run Someappname::Application 

私environment.rbに:

# Load the rails application 
require File.expand_path('../application', __FILE__) 
Encoding.default_external = Encoding::UTF_8 
Encoding.default_internal = Encoding::UTF_8 
Someappname::Application.initialize! 

私のconfig /初期化子/エンコーディング私のdatabase.ymlの中

私は、この持っています.rb:

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

#エンコーディング:UTF-8

私は ":: Encoding.default_xxxxxx =エンコーディングUTF_8を" のすべての組み合わせを試してみましたが、それらなしで

にすべてのコントローラ、ヘルパーやメーラーで始まる

MySQLで

mysqlの> 'のchar%' のような変数を表示。

+--------------------------+----------------------------+ 
| Variable_name   | Value      | 
+--------------------------+----------------------------+ 
| character_set_client  | latin1      | 
| character_set_connection | latin1      | 
| character_set_database | utf8      | 
| character_set_filesystem | binary      | 
| character_set_results | latin1      | 
| character_set_server  | latin1      | 
| character_set_system  | utf8      | 
| character_sets_dir  | /usr/share/mysql/charsets/ | 
+--------------------------+----------------------------+ 

から出力:

mysqlの> 'コラの%' のような変数を表示。

+----------------------+-------------------+ 
| Variable_name  | Value    | 
+----------------------+-------------------+ 
| collation_connection | latin1_swedish_ci | 
| collation_database | utf8_general_ci | 
| collation_server  | latin1_swedish_ci | 

私が何ができるかの任意のアイデア?私は本当にこの問題に疲れていることを誇示しています!

答えて

4

Okey、私は問題を解決することができたようです! 問題は私がmysqlとmysql2を同時に使用していたことでした。 それを解決するには、mysqlを削除してmysql2の "0.3.7"を取得しなければなりませんでした。そうでなければdeviseは私に奇妙なエラーを投げかけていました。 そしてdatabase.ymlのアダプタをアダプタに変更する必要がありました:mysql2

これは、同じ問題を抱えている人に役立ちます。

関連する問題