我正在一個Linux服務器上使用MySQL數據庫的網站上工作。你什麼時候需要顯式調用mysql_set_charset?
使用phpMyAdmin,在數據庫中,它說
- 的MyISAM是這個MySQL服務器
- latin1_swedish_ci上的默認存儲引擎
不過,我已經創建了所有的表與InnoDB和utf8_unicode_ci。我還檢查了所有表的表字段是utf8_unicode_ci。
然而,當我mysql_fetch_array,並回聲流,它給了胡言亂語。我不得不明確設置mysql_set_charset('utf8')
以使文本正確顯示。
PHP版本是5.3.9; MySQL版本是5.1.70-cll - MySQL社區服務器(GPL)。
這是我第一次遇到這個問題,我從來沒有設置過的字符集。
是什麼導致php mysql_ *獲取的文本是亂碼?在什麼情況下需要mysql_set_charset
?
編輯:這不是一個問題,以吸引建議使用替代庫例如mysqli,pdo。我只想了解關於MySQL和charsets行爲的當前情況。謝謝。
從不; ['mysql_ *'函數已被棄用](http://au1.php.net/manual/en/function.mysql-set-charset.php)。 – Marty
http://stackoverflow.com/q/12859942/358906 –
這將設置每個人爲UTF-8。 'mysql_query(「SET NAMES utf8」);' – M1K1O