4

我正在尝试使我的 Rails 应用程序 UTF-8 原生。我这样做是因为自从升级到 Ruby 1.9 后,我遇到了这个问题,每次我的网页必须显示一些 UTF-8 字符时,我得到:

incompatible character encodings: UTF-8 and ASCII-8BIT

作为错误页面。我已经诊断出当我尝试呈现任何 UTF-8 文本时会出现错误,因为这种网页会失败:

 %h3.book_title
  = "カタカナ"

(询问上述字符串的编码将返回 UTF-8)

然而这个会成功:

 %h3.book_title
  = "カタカナ".force_encoding("ASCII-8BIT")

所以看起来 Rails 决定渲染自 1.9 升级以来的所有页面,默认情况下使用 ASCII-8BIT 编码。这是一个问题,因为我的页面经常显示仅在 UTF-8 中运行良好的多语言数据。

我尝试过的事情:

我正在使用 Mysql2 gem。我把它放在我的 environment.rb 中:

Encoding.default_external = Encoding::UTF_8
Encoding.default_internal = Encoding::UTF_8

这是在我的 application.rb 中:

config.encoding = "utf-8"

这些都不是真正的工作。谁能阐明如何使我的应用程序只使用 UTF-8 而不是这种 ASCII-8BIT 废话?

4

1 回答 1

-2

将神奇的字符编码 shebang 添加为视图文件的第一行以强制使用 UTF:

# encoding: UTF-8
%h3.book_title
    = "カタカナ"
于 2013-07-22T19:37:25.223 回答