我需要一些幫助來理解utf8數據在數據庫中存儲時應該如何看待。當存儲在數據庫中時,utf8數據應該如何顯示?
我正在使用mysql和php,數據庫設置爲utf8,列「p_name」上的排序規則設置爲「utf8_unicode_ci」。
當我通過這個功能插入I它傳遞數據
function convert_charset($in_str)
{
$cur_encoding = mb_detect_encoding($in_str) ;
if($cur_encoding == "UTF-8" && mb_check_encoding($in_str,"UTF-8"))
return $in_str;
else
return utf8_encode($in_str);
}
然後將其插入到數據庫中。當我讀出php中的數據並將其顯示在瀏覽器中時,我在頁面中使用utf8,數據顯示正確,但是我懷疑可能是錯誤的。
以法語單詞éditez
這是它應該看起來。然而在我的數據庫裏面,當我看着它時,同一個字被存儲爲éditez
。這是正確的嗎?這是如何mysql應該存儲這個詞,或者我有一些設置錯誤?
這裏是我已經設置已經:
- php.ini文件 - >設置爲UTF-8
- 數據庫 - >設置爲utf8
- 表列 - >設置爲utf8_unicode_ci
- html頁面 - >設置爲utf8。
嘗試在my.ini中添加'default-character-set = utf8',然後重新添加數據。 – 2010-06-24 20:13:02
如何從數據庫中檢索數據? – Gumbo 2010-06-24 20:13:35
看來你試圖在不理解utf-8的東西上顯示utf-8,那麼你如何查看這些數據呢? – nos 2010-06-24 20:16:30