Ruby on rails 3 如何在RubyonRails3中允许从右向左的语言

Ruby on rails 3 如何在RubyonRails3中允许从右向左的语言,ruby-on-rails-3,hebrew,right-to-left,Ruby On Rails 3,Hebrew,Right To Left,我对使用RubyonRails3创建一个希伯来语网站很感兴趣。问题是当我把希伯来语放进我的观点时,我被告知它不受支持,我应该添加UTF-8 我已经在这方面工作了一段时间,但我似乎找不到如何做到这一点。我也在使用Sqlite3,我想在那里保存希伯来语字符串 我将如何实现这一点 我收到的错误代码是: 您的模板未保存为有效的UTF-8。请在文本编辑器中指定UTF-8作为模板的编码,或者通过插入以下内容作为模板的第一行来标记模板及其编码:… 编辑: 问题是我正在使用记事本+,它并没有将我的文件保存为UT

我对使用RubyonRails3创建一个希伯来语网站很感兴趣。问题是当我把希伯来语放进我的观点时,我被告知它不受支持,我应该添加UTF-8

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

我将如何实现这一点

我收到的错误代码是:

您的模板未保存为有效的UTF-8。请在文本编辑器中指定UTF-8作为模板的编码,或者通过插入以下内容作为模板的第一行来标记模板及其编码:…

编辑:


问题是我正在使用记事本+,它并没有将我的文件保存为UTF-8格式,尽管它们是UTF-8格式的文件。通过更改文件格式解决。

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

# encoding: utf-8
在您的
.erb

<%# encoding: utf-8 %>

编码:utf-8
编码:utf-8
是等效的


希望这有帮助。

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

编辑:

您可以使用以下选项检查文件编码:

file -I myview.erb.html

(大写“i”)。

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

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

class ApplicationController < ActionController::Base
before_filter :set_charset

def set_charset
@headers["Content-Type"] = "text/html; charset=utf-8"
end
end
class ApplicationController
阅读本文的更多内容:

您可以

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文件上使用全局选项,可以使用
-Ku
ruby选项,并通过
RUBYOPT
环境变量进行设置,如:

export RUBYOPT=-Ku 

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

请添加特定代码和错误消息/堆栈跟踪。“代码”只是在视图中添加一个希伯来语单词。我在视图中添加了错误代码。这听起来像是文件编码问题。你在用什么编辑器?我被否决了,但我仍然鼓励你仔细检查你的文件是否正确地用UTF8编码。我仍然认为这可能是它。所以记事本++可能是问题-似乎有编码问题?Surelt Kamil应该得到正确的答案?在视图端启用如何?我收到一条消息说,
当你没有预料到它时,你有一个nil对象我认为它不识别headersTry
response.headers[“Content Type”]=“text/html;charset=utf-8'
现在它可以识别标题,但是当我将希伯来语添加到视图中时,仍然会出现一个错误。除非文件正确编码,否则它自己无法工作。显然,记事本++在Windows XP之后的任何版本上都存在unicode问题: