當我使用phpmyadmin查看存儲在mysql數據庫中的數據時,字符完全按照éàç存儲,但是當我使用php在具有以下精確結構的html文檔上顯示這些數據時:UTF-8法語重音字符問題
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title></title>
</head>
<body>
</body>
</html>
我有方形的,而不是語音字符,但是,我沒有這個問題有沒有被在同一個頁面從MySQL裝上靜態內容的任何重音字符。
當我看到他們似乎是相同的頁面的源代碼!例如:MySQL的源數據的
éçà
部分:
éçà
我試圖與
替換<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
顯示爲對源代碼的靜態數據的
部分
<meta http-equiv="Content-Type" content="text/html; charset=windows-1552" />
並因此我得到了一個固定的MySQL,靜態與正方形!
任何提示?
看起來像一個錯誤配置問題。也許你的數據庫驅動程序不使用UTF-8? 當您更改爲'windows-1552'並且靜態文件不顯示時,來自數據庫的數據顯示OK,這可能意味着您的源文件以UTF-8格式(正確),但數據庫中的數據以錯誤的編碼格式到達。 無論發生什麼,堅持UTF-8。 – ubik 2013-04-20 17:20:57
謝謝您的回覆,我已經檢查了數據庫,發現排序規則設置爲'latin1_swedish_ci',這可能是問題的根源嗎? – Mbarry 2013-04-20 17:24:34
是的,這是問題的根源,你存儲你的數據在MySQL ascii中,但然後試圖顯示它在utf8在你的html .. – Nelson 2013-04-20 17:26:32