2011-05-19 59 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語言標記。當網站使用多種語言編寫並且可以包含在每個頁面上以告知搜索引擎使用哪種語言編寫特定頁面時,它是最有用的