2011-04-15 101 views
1

我创建了一个rails应用程序,其中我显示任何类型的名称,名称可以是任何人,汽车,蔬菜,任何材料。法国字符在页面上无法正常显示3.0.3

所以我想包括一些成分名称,如CrèmeFraîche,只要我从其他网页复制这个名称并存储在我的数据库中,它就会正确地存储它。

在网页上显示这个名字时,我在网页上看到一些奇怪的字符,如Cr meFra che。

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

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

我在搜索上述问题上浪费了近5天的时间,但没有成功。 我希望这一次我会得到一些帮助

在此先感谢 潘卡

回答

4
  1. 包括在你的页面的部分下面的meta标签

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

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

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

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

  4. 为了确保您的字符能够正确显示,请为每个非标准字符使用明确的HTML代码,例如代替Crème使用Cr & egrave;我(注意,在“&”和“;”之间不应该有空格 - 我必须以这种方式键入它来阻止此页面解释代码并显示è)。

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