我创建了一个rails应用程序,我在其中显示任何类型的名称,名称可以是人,汽车,蔬菜,任何材料。
因此,我想要包括一些成分名称,如CrèmeFraîche,每当我从其他网页复制此名称并存储在我的数据库中时,它都会正确存储它。
在网页上显示此名称时,我会在页面上显示一些奇怪的字符,如Cr meFra che。
我使用了charset UTF-8,然后它也显示了这样的名字。
我检查了我的数据库名称是否正确存储,但是在页面和irb中它显示的名称是这样的。
我已经浪费了将近5天的时间来寻找上述问题,但没有成功。 我希望这次能得到一些帮助
提前致谢 Pankaj
答案 0 :(得分:4)
在您网页的部分中包含以下元标记
<meta http-equiv="content-type" content="text/html; charset=ISO-8859-1" />
这告诉浏览器使用ISO编码来解释页面上的文本
即使网页中的编码正确,在未安装所需字体的计算机上仍会显示损坏的字符,显然您无法确定在查看页面的计算机上安装了哪些字体
也可能需要配置浏览器。例如,需要在选项/工具/内容部分告知Firefox默认使用上述字符集
要绝对确定您的字符是否正确显示,请使用每个非标准字符的明确HTML代码,例如而不是Crème使用Cr&amp;埃格雷夫我(注意,“&amp;”和“;”之间不应有空格 - 我必须以这种方式键入它以阻止此页面解释代码并显示è)。
这可能会影响数据库中的Web搜索和排序功能。您可以将文本存储为数据库中的Crème,并在传递到HTML页面之前通过转换函数传递所有内容(这显然会在获取页面时引入一些延迟)。您可能还会考虑使用两种版本的数据,即原始数据版本和显示版本。然后,您可以通过转换函数传递新数据,存储转换后的版本并将转换后的数据写入HTML页面。