當我將一些用unicode編寫的文本插入數據庫時,它們會變成問號。數據庫編碼設置爲utf-8。還有什麼可能不正確?當我檢查phpmyadmin時,只有插入的問號!插入數據庫後,Unicode字符會成爲問號
這是我用來連接到數據庫的代碼:
當我將一些用unicode編寫的文本插入數據庫時,它們會變成問號。數據庫編碼設置爲utf-8。還有什麼可能不正確?當我檢查phpmyadmin時,只有插入的問號!插入數據庫後,Unicode字符會成爲問號
這是我用來連接到數據庫的代碼:
是您所插入的UTF-8編碼過的文本?或者你的PHP文件不是UTF-8?你有沒有將MySQL客戶端連接設置爲UTF-8?
如果沒有,那麼這可能是問題的原因。
你怎麼知道成爲問號?你看到它們是PHP頁面中的問號,輸出數據庫字段時還是像phpmyadmin這樣的軟件?
無論哪種方式,問題可能是您的網頁編碼,而不是數據庫的編碼。確保添加以下行:
header('Content-Type: text/html; charset=utf-8');
我也在phpmyadmin和網站上看到了問號。 – 2010-07-31 11:57:02
您使用的字體是重要的信息,可以幫助解決這種情況 – stillstanding 2010-07-31 12:02:13
我使用格魯吉亞的Unicode。字體名稱是Sylfaen。 – 2010-07-31 12:04:26
//first make sure your file produce utf-8 chars
header('Content-Type: text/html; charset=utf-8');
//make sure with your spelling
//write
mysql_query("SET CHARSET utf8");
//instead of
mysql_query("SET CHARACTER SET utf8");
//for some reasons
mysql_query("SET CHARSET SET utf8");
//works on some servers and for other servers not.i am not sure why?
//try using mysql_set_charset("utf8"); only without mysql_query("SET CHARSET utf8");
//for me i had the same issue with my server
//when i used mysql_set_charset("utf8"); only --> the problem solved
//again make sure with your spelling and try again
很抱歉,但你都錯了.. 我的朋友國王朱利安你剛剛執行:
mysql_query("SET CHARACTER SET utf8");
mysql_query("SET CHARSET utf8");
mysql_query("SET COLLATION_CONNECTION = 'utf8_unicode_ci'"); //This statement does the job!!! ;)
有一個愉快的一天!
您使用哪個模塊與MySQL進行通信? mysql,mysqli,pdo-mysql,...?數據也是正確的utf-8編碼?您究竟將哪些字符視爲問號? – VolkerK 2010-07-31 11:52:28
我加了mysql_query(「SET NAMES'utf8'」);在mysql_select_db之後,問題解決了! – 2010-07-31 13:17:21
您可能希望查看http://uk3.php.net/manual/en/function.mysql-set-charset.php – 2010-07-31 14:52:40