2013-02-07 30 views
2

利用該:用於Chrome的MySQL UTF8,用於IE的UTF8,但用於Chrome的HEADER UTF8和用於IE的UTF-8?

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

IE正確顯示 鉻正確顯示

利用該:

<meta http-equiv="Content-Type" content="text/html; charset=utf8"> 

(無 - 和f 8之間)

IE顯示EEAA等。與è$等 鉻顯示正常

然後,我有一個SQL連接(數據庫utf8_unicode_ci或ascii_general_ci設置好的)

mysqli_set_charset('utf8') 

IE和Chrome顯示èéàäö張貼結果

正確時
mysqli_set_charset('utf-8') 

IE和鉻顯示器的$等要麼 ?????發佈結果時

其他瀏覽器如何? 爲什麼?

回答

3

Content-Type meta標籤,有效的方法是:

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

原因鉻正確顯示在這種情況下,因爲它是比較能接受的錯誤,而IE需要它被正確寫入。

但是它與MySQL不同。他們決定用短名稱。這是一個list of supported character sets。這是服務器端完成的,所以你使用的瀏覽器無關緊要。

您也可以執行以下查詢:

SHOW CHARACTER SET LIKE 'utf%' 

編輯:

確保您使用的是相同的字符集INSERT到數據庫或這可能導致意外的效果,當你再次查看它。

+0

謝謝!現在...在SQL上,如果我設置UTF8 IE和Firefox顯示爲false,並且Chrome正常。 總是在SQL上,如果我設置UTF-8所有的瀏覽器都能正常顯示,除了'和「他們張貼爲??我怎樣才能防止這種情況?謝謝! – Perocat

+0

如果你使用PHP,它可能會發送' Content-Type「標頭,有些瀏覽器比meta標籤更喜歡這個,或者當你玩弄東西的時候,你可能會手動設置編碼,查看http://web-sniffer.net/來查看頁面發送的頭文件或者使用諸如Firefox或Chrome的Web開發人員插件之類的東西。 – Mike

+0

在數據庫中,如果我有: ?????????????????????????????????????????????????????????解碼mysqli_set_charset 「UTF8」)我得到èéàè正確 如果我mysqli_set_charset(「utf-8」)進行解碼,我收到了©AA 在另一方面,如果我對數據庫: èéàéèà 與「UTF8解碼'如果我使用'UTF-8'解碼,我會得到éÃÃÃà 我得到èéàè 這對我來說沒有意義...? – Perocat