4

我有兴趣使用 Ruby on Rails 3 创建一个希伯来语网站。问题是当我将希伯来语放入我的视图时,我被告知它不受支持,我应该添加 UTF-8。

我已经为此工作了一段时间,但我似乎无法找到如何做到这一点。我也在使用 Sqlite3,我也想在那里保存希伯来语字符串。

我将如何实现这一目标?

我得到的错误代码是:

Your template was not saved as valid UTF-8. Please either specify UTF-8 as the encoding for your template in your text editor, or mark the template with its encoding by inserting the following as the first line of the template:...

编辑:

问题是我正在使用 Notepad++,尽管它们是 UTF-8 格式的文件,但它没有以 UTF-8 格式保存我的文件。通过更改文件格式解决。

4

5 回答 5

2

您应该尝试在.rb文件的第一行添加以下内容:

# encoding: utf-8

在你的第一行.erb

<%# encoding: utf-8 %>

encoding: utf-8coding: utf-8和 是等价的。

希望这可以帮助。

于 2011-02-02T07:52:27.690 回答
2

确保在您的数据库配置中,utf-8 是默认字符集,而不是 latin1。
如果您使用 MySQL,请在“MySQL 服务器实例配置向导”中更改它。

编辑:尝试将此代码放入您的应用程序控制器中:

class ApplicationController < ActionController::Base
before_filter :set_charset

def set_charset
@headers["Content-Type"] = "text/html; charset=utf-8"
end
end

阅读这篇文章的更多信息:http: //www.dotmana.com/?p=95

于 2011-02-04T09:04:50.873 回答
2

如果您使用的是notepad++,请先将编码设置为“以UTF-8编码”,然后开始编码。如果您已经创建/保存了文件,那么仅更改编码类型是行不通的。您必须保留现有代码的副本,然后删除现有文件,打开记事本++,首先设置编码(UTF-8 编码),然后开始向其中写入/复制代码。这样可以确保 utf-8 编码,您不必在文件顶部放置“# encoding: UTF-8”。

于 2012-12-06T06:07:08.133 回答
1

你可以把

config.encoding = "utf-8"

在你config/application.rb这相当于

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

这又相当于把:

# encoding: UTF-8

或每个文件顶部的 BOM。

这允许在 rails 应用程序的所有文件上全局使用 utf-8。如果您想在所有 ruby​​ 文件上使用全局选项,可以使用-Kuruby​​ 选项并通过RUBYOPT环境变量进行设置,例如:

export RUBYOPT=-Ku 
于 2012-11-08T16:12:15.080 回答
0

这可能是由文件编码本身引起的。确保您已在编辑器/IDE 首选项中将 UTF-8 设置为项目的默认编码。

编辑:

您可以使用以下方法检查文件的编码:

file -I myview.erb.html

(这是一个大写的'i')。

于 2011-02-04T00:13:10.577 回答