【问题标题】:Rails and Utf-8 encodingRails 和 Utf-8 编码
【发布时间】: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


【解决方案1】:

我无法解决这个问题。我通过购买 Mac 来“解决”它并继续在它上面开发我的 Rails 应用程序......

编码 - 我:1-0

【讨论】:

    【解决方案2】:

    我能够克服这个错误,但不幸的是,我在 yield 语句 (application.html.erb) 中遇到了同样的错误。半小时后我放弃了。

    我将一些带有 BOM 的 utf-8 的 erb 文件保存到 utf-8 没有 BOM。混合编码不好,我认为这是您错误的原因。

    我还发现了具有不同行尾的文件:lf 或 crlf。

    如果你是在 Windows 下开发,我推荐你安装 virtual box 来设置一个 linux 虚拟机。你可以通过 samba 访问文件系统,它对我来说很好用。

    另外,将您的文本编辑器配置为使用没有 BOM 和 lf 行尾的 utf-8。

    【讨论】:

      猜你喜欢
      • 2012-06-17
      • 2015-01-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-08-20
      • 2021-04-04
      相关资源
      最近更新 更多