【问题标题】:How to deal with 'incompatible character encodings: ASCII-8BIT and GBK' exception?如何处理“不兼容的字符编码:ASCII-8BIT 和 GBK”异常?
【发布时间】:2010-07-26 03:29:22
【问题描述】:

我正在阅读“使用 Rails.3rd 进行敏捷 Web 开发”。完成depot应用程序后,我输入了一些汉字作为用户名。但是我得到了这个错误,这似乎与Ruby1.9有关

我的环境是window xp,Ruby1.9 Rails 2.3.8和sqlite3。

以下是有关此错误的详细信息:


显示第 43 行出现的 app/views/layouts/store.html.erb:

不兼容的字符编码:ASCII-8BIT 和 GBK

提取的源代码(第 43 行附近):

40:

41:

42:

43:


谁能帮我解决这个问题?

【问题讨论】:

  • 如果您能提供完整的堆栈跟踪,那就太好了。然后我们可以帮助您妥善解决问题。

标签: ruby-on-rails ruby-1.9


【解决方案1】:

我发现添加了

# encoding: utf-8

一开始更简单(可能更优雅)

【讨论】:

    【解决方案2】:

    您可以尝试将其放入您的 environment.rb 文件中:

    Encoding.default_internal = Encoding.find("UTF-8")
    

    您还可能会在 Windows 中使用不正确的控制台编码使问题更加复杂。确保将其设置为 Unicode。

    【讨论】:

    • 这似乎确实有效。在 environment.rb 文件中添加 Encoding.default_internal = Encoding.find("UTF-8") 时出现 nil 错误。
    • 它不起作用。我收到此错误“内部服务器错误您有一个 nil 对象,但您没想到它!您可能期望一个 Array 实例。在评估 nil.each 时发生错误”
    • 故障安全响应期间的错误:“\xE6”从 ASCII-8BIT 到 UTF-8 在从 ASCII-8BIT 到 GBK 的转换中
    【解决方案3】:

    这很荒谬,但我遇到了同样的问题,直到

    我发现我的类名中只有西里尔字母“C” %)

    因此,最好检查一下您是否没有使用其他键盘布局中的 c、a、o、p 等内容

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-12-11
      • 2011-07-14
      • 1970-01-01
      • 2011-10-17
      • 2012-09-09
      • 2011-05-26
      • 2011-12-14
      • 2016-04-27
      相关资源
      最近更新 更多