【问题标题】:Bah! I keep getting this encoding error in rails with ruby 1.9.2呸!我在使用 ruby​​ 1.9.2 的 Rails 中不断收到此编码错误
【发布时间】: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


    【解决方案1】:

    好的,看来我设法解决了这个问题! 问题是我同时使用 mysql 和 mysql2 。 所以要解决它,我必须删除 mysql 并获取 mysql2“0.3.7”,否则设计会向我抛出奇怪的错误。 然后我不得不将 database.yml 中的适配器更改为适配器:mysql2

    希望这可以帮助遇到同样问题的人!

    【讨论】:

      猜你喜欢
      • 2011-07-04
      • 1970-01-01
      • 1970-01-01
      • 2021-11-06
      • 1970-01-01
      • 2020-10-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多