2011-05-19 71 views
1

我在我的网站中使用法语和英语。我有两个链接,如“法语|英语”,当用户选择了“法语”我放在头下面语言格式问题 - 元标记

<meta content="text/html; charset=ISO-8859-1" http-equiv="Content-Type"> 
<meta content="fr" http-equiv="Content-Language"> 

,当用户选择“英语”我放在头下面,以显示各自的语言

<meta content="text/html; charset=utf-8" http-equiv="Content-Type"> 
<meta content="en" http-equiv="Content-Language"> 

问题是,当我从法语切换到英语时,链接“法语|英语”变得像“法语|英语”。我做错了什么?有什么建议么?

感谢

+0

为什么不对两种语言使用'utf-8'? – alex 2011-05-19 12:36:43

回答

2

这听起来像你还在使用UTF-8(现代标准编码文本),而不是使用ISO-8859-1(编码文本的传统标准,你不应该使用任何更高)法国文件。

由于您声称您使用的是ISO-8859-1,因此浏览器会尝试将该文档解释为使用该编码并获取一些不可打印的字符。解决方案是声称UTF-8无处不在。由于UTF-8包含ISO-8859-1中的所有内容(还有更多),所以无论如何都不会有任何意义。内容语言仅指定文档的目标受众。要指定一个文件确实是用法语写的,你应该:

<html lang="fr"> 

然后你应该指定一个环节都在不同的语言,并指向不同语言的同一文档的替代版本:

<ul> 
    <li><a href="/fr/" lang="fr" hreflang="fr" rel="alternate">Française</a></li> 
    <li><a href="/en/" lang="en" hreflang="en" rel="alternate">English</a></li> 
</ul> 
+0

大部分都是正确的,但是Unicode包含ISO-8859-1的所有字符,但UTF-8只是ASCII的超集而不是ISO-8859-1(否则,更改编码并不会像提问者那样有所作为表示它)。 – 2011-05-19 12:43:12

+0

好点,固定。 – Quentin 2011-05-19 12:43:56

+0

谢谢大卫Dorward和Brettz9 ..我发现这些提示的解决方案.. – balanv 2011-05-19 13:13:09

0

对两种语言都使用charset = utf-8,并确保您的源文件使用UTF-8格式。

+0

谢谢你的答案..! – balanv 2011-05-19 13:13:34

0

UTF-8是您应该使用的唯一编码,并且它是唯一特别鼓励用于HTML5的编码。如果需要,UTF-8可以支持相同编码中的任何人类语言组合(例如,包括一些印度文和中文字符的德语文档等),而对于几乎所有其他编码(设计为存储器/处理如ISO-8859-1)。

确保您的文本编辑器保存为UTF-8 Unicode(而非UTF-16等),如果不是,请确保您使用的唯一字符是基于ASCII的字符并使用数字字符引用,实体,或JavaScript/CSS Unicode转义序列来表示非ASCII字符。但是现在任何像样的编辑器都应该支持UTF-8。

+0

HTML 5没有强制使用UTF-8:http://www.w3.org/TR/html5/semantics.html#charset – Quentin 2011-05-19 13:11:31

+0

对不起,感谢您的更正......不知道我为什么这么说,尤其是。因为HTML5旨在向后兼容,但UTF-8在所有其他应用程序(包括UTF-16)上的表现还是非常重要的。我会纠正回应。 – 2011-05-20 02:45:14

1

语言属性告诉搜索引擎与编码语言(例如HTML)相反,网站使用哪种自然语言编写(例如英文,西班牙文或法文http://www.nowgoal.com/)。它通常是语言名称的IETF语言标记。当网站使用多种语言编写并且可以包含在每个页面上以告知搜索引擎使用哪种语言编写特定页面时,它是最有用的