【发布时间】:2011-10-25 21:40:44
【问题描述】:
我知道这是编程史上最常见的问题,但我相信我现在已经尝试了所有方法,但我仍然在 pages#index.html 文件中得到:incompatible character encodings: UTF-8 and ASCII-8BIT。
我正在运行 Ruby 1.9.2 和 Rails 3.1.1。
这是我已经验证/测试/设置的:
-
在database.yml中,设置编码:utf8
发展: 适配器:mysql 编码:utf8 重新连接:假 数据库:kopa_development 游泳池:5 用户名:root 密码: 主机:本地主机
使用 Notepad++ 检查文本文件是否已编码为 utf-8
- 用 mysql 查询浏览器检查数据库设置为 utf-8,列也是如此
- 我已尝试在控制器中使用 # coding: utf-8 与我要查看的视图相关。
- 我已将SET NAMES utf8 放入mysql 中
- 我已经在 environment.rb 中尝试了 Encoding.default_internal = Encoding::UTF_8 以及 Encoding.default_external = Encoding::UTF_8
- 我在 application.rb 中有 config.encoding = "utf-8"
- 我已经谷歌了
- 我已阅读http://www.joelonsoftware.com/articles/Unicode.html
- Notepad++ 和 RubyMine 我都试过了
- 添加 .force_encoding 有效,但非常不方便
有趣的是,如果我将 index.html.erb 设置为 ANSI,它会抱怨 application.html.erb 没有正确的编码(而不是 index.html.erb)。我不知道这意味着什么,但它让我觉得编辑器有些可疑。
我记得在使用 e 文本编辑器时,我可以设置两件事(参考编码)编码和其他内容。那个“else”我不记得是什么了,我也没有 e 了。
关于错误消息,我是否正确理解第一个是指数据库编码,第二个是 Rails(?) 编码?我也看到了相反的错误消息(先是 ASCII,后是 UTF-8)。
编辑:今天早上我用谷歌搜索了一些,发现 mysql-gem 有问题。文章有点老了,我尝试了那里的解决方案(例如尝试 mysql2 和 ruby-mysql),但没有更好的运气。
我完全没有想法。你呢?
【问题讨论】:
-
您能否提供一个测试示例来重现该错误? (代码和 sql 转储)。真的很难在没有看到问题的情况下帮助您。
-
当然,我已将其上传到 www.kalkyleramera.com/kopa.zip。它只包含一篇文章(一页),但它仍然崩溃。
标签: ruby-on-rails encoding utf-8