我的網站上有一個UTF8問題,我無法解決(也不明白)。 當我使用...PHP - UTF8顯示不正確,雖然一切都應該正確
$mysqli->set_charset('utf8');
...我的web頁面,然後特殊字符顯示不正確。當我刪除這個函數時,所有來自數據庫查詢的特殊字符都會正確顯示。在我的本地系統是相反的(沒有set_charset('utf8')字符不以正確的方式顯示)
我也做了一個測試腳本,看看這是否是我的虛擬主機的問題。該測試在我的web空間和本地上正確運行。
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<?php
$db = new mysqli(bla bla);
$db->set_charset('utf8');
$sql = "SELECT pages_title
FROM pages
WHERE pages_title = 'Günstige Tablet PCs'";
$result = $db->prepare($sql);
$result->execute();
$result->bind_result($title);
$result->store_result();
$result->fetch();
$result->free_result();
echo "Title: ". $title;
現在我已經沒有了解問題的想法。一切設置正確:
- 數據庫本身被設置爲utf8,一般-CI
- 文件以UTF8格式。
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
已設置。
因爲測試腳本運行正常,所以問題應該在我的代碼中,但我不知道什麼可能會導致錯誤,因爲我沒有做任何與utf8_encode/decode或類似的東西。
任何想法??謝謝!!
是否使用phpMyAdmin正確顯示數據庫中的條目? – Ryan
您應該使用'header'函數而不是'meta'元素。 – Gumbo
是的,一切都很好 –