2012-11-22 46 views
1

MySql數據庫使用utf-8編碼和數據存儲正確。我使用set_name utf8查詢來確保所調用的數據是utf-8 encoded.all數據庫中的所有變量工作正常,只要標題charset是utf-8,但靜態HTML字符不能正常工作。當我設置標題字符集爲ISO-8859-9時,變量顯示不同,而html字符可以正常工作。可以任何人幫助我嗎? Utf8編碼:http://oi48.tinypic.com/289kje1.jpg html標籤有問題顯示values.but PHP數據(綠色的,例如ağişler)來自數據庫是ok.ISO編碼http://oi50.tinypic.com/287n2ph.jpg此時的HTML是好的,但PHP數據顯示錯誤。土耳其文字不能正確顯示

<?php 
    header('Content-Type: text/html; charset=ISO-8859-9'); 
    ?> 
    <!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><title>noname</title> 
     <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 

+0

那麼,您的內容是UTF-8還是ISO編碼?它不能兼而有之。用UTF-8保存你的源代碼! – deceze

+0

我希望它是utf-8編碼,但土耳其字符在utf-8中不顯示出來。例如Ş和我是這樣的,當不包括標題字符集ISO。 – Codette

回答

4

您可以嘗試在明確你的文件的頂部添加內容類型如下

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

,並從你的代碼中刪除以下..

header('Content-Type: text/html; charset=ISO-8859-9'); 

更新:

<!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>Untitled Document</title> 
</head> 
<body> 
<?php echo "for example Ş and İ "; ?> 
</body> 
</html> 

上面的代碼給我下面的輸出:

enter image description here

+0

然後靜態字符顯示錯誤 – Codette

+0

告訴我們他們如何得到顯示,你會如何喜歡他們與一些例子或截圖.. –

+0

Utf8編碼:http://oi48.tinypic.com/289kje1.jpg html標籤有問題顯示values.but php數據(綠色的,如ağişler)來自數據庫是ok.ISO編碼http://oi50.tinypic.com/287n2ph.jpg這次的HTML是好的,但PHP數據顯示錯誤。 – Codette

0

所以,如果你告訴瀏覽器將其解釋爲UTF-8,這意味着數據從數據庫中的數據UTF-工作8編碼。如果您告訴瀏覽器將其解釋爲ISO-8859,那麼HTML代碼將起作用,這意味着HTML以ISO-8859編碼。

所以你有一個文件混合編碼。把這兩個結合在一起。將源代碼文件保存爲UTF-8並告訴瀏覽器將其解釋爲UTF-8,或者從ISO-8859中的數據庫中獲取數據,並告訴瀏覽器如此解釋它。

+0

是的,這是問題,但我使用的是Eclipse,我不知道如何改變源代碼的編碼。 – Codette

+1

查看幫助文件。谷歌。這不可能是一個難以克服的問題。 – deceze

+0

http://stackoverflow.com/search?q=change+encoding+of+file+in+eclipse – deceze