在rails 3.0.3页面上没有正确显示的法语字符

时间:2011-04-15 08:44:38

标签: ruby-on-rails-3 utf-8

我创建了一个rails应用程序,我在其中显示任何类型的名称,名称可以是人,汽车,蔬菜,任何材料。

因此,我想要包括一些成分名称,如CrèmeFraîche,每当我从其他网页复制此名称并存储在我的数据库中时,它都会正确存储它。

在网页上显示此名称时,我会在页面上显示一些奇怪的字符,如Cr meFra che。

我使用了charset UTF-8,然后它也显示了这样的名字。

我检查了我的数据库名称是否正确存储,但是在页面和irb中它显示的名称是这样的。

我已经浪费了将近5天的时间来寻找上述问题,但没有成功。 我希望这次能得到一些帮助

提前致谢 Pankaj

1 个答案:

答案 0 :(得分:4)

  1. 在您网页的部分中包含以下元标记

    <meta http-equiv="content-type" content="text/html; charset=ISO-8859-1" />
    

    这告诉浏览器使用ISO编码来解释页面上的文本

  2. 即使网页中的编码正确,在未安装所需字体的计算机上仍会显示损坏的字符,显然您无法确定在查看页面的计算机上安装了哪些字体

  3. 也可能需要配置浏览器。例如,需要在选项/工具/内容部分告知Firefox默认使用上述字符集

  4. 要绝对确定您的字符是否正确显示,请使用每个非标准字符的明确HTML代码,例如而不是Crème使用Cr&amp;埃格雷夫我(注意,“&amp;”和“;”之间不应有空格 - 我必须以这种方式键入它以阻止此页面解释代码并显示è)。

    这可能会影响数据库中的Web搜索和排序功能。您可以将文本存储为数据库中的Crème,并在传递到HTML页面之前通过转换函数传递所有内容(这显然会在获取页面时引入一些延迟)。您可能还会考虑使用两种版本的数据,即原始数据版本和显示版本。然后,您可以通过转换函数传递新数据,存储转换后的版本并将转换后的数据写入HTML页面。