【发布时间】:2011-12-13 20:47:37
【问题描述】:
我通过 rvm 在 debian 系统上使用带有 ruby-1.9.2-p290 的 rails 3.1.1。 我在视图和 mysql 数据库中使用瑞典字母。 我不断得到
不兼容的字符编码:UTF-8 和 ASCII-8BIT
当我访问从数据库中获取内容的页面时。
在我的 database.yml 我有这个:
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
我的环境.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!
我的配置/初始化程序/encoding.rb:
Encoding.default_external = Encoding::UTF_8
Encoding.default_internal = Encoding::UTF_8
我已经尝试了所有“Encoding.default_xxxxxx = Encoding::UTF_8”的组合,没有它们
每个控制器、助手和邮件程序都以:
#编码: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> 显示像'colla%'这样的变量;
+----------------------+-------------------+
| Variable_name | Value |
+----------------------+-------------------+
| collation_connection | latin1_swedish_ci |
| collation_database | utf8_general_ci |
| collation_server | latin1_swedish_ci |
知道我能做什么吗?我已经厌倦了这个问题!
【问题讨论】:
标签: mysql ruby ruby-on-rails-3 encoding ruby-on-rails-3.1