2014-11-08 22 views
1

我有一個PHP頁面上的表格,該頁面將數據插入MySQL數據庫。 某些輸入字段可能包含UTF8字符,如é,è,â等等。當它們實際插入到數據庫中時,一切都會變得混亂。例如,列顯示Qréon而不是Qréon不能確定是否MySQL或PHP嚴重編碼UTF8字符串

我在我的頁面頂部使用了setLocale(LC_CTYPE, 'FR_fr.UTF-8'); PHP,這個<meta charset="utf-8">位於我的HTML標頭中。
我的數據庫運行的是MySQL,存儲引擎是InnoDB,排序規則是utf8_general_mysql500_ci。我也試過utf8_general_ciutf8_bin,但我沒有運氣。

我怎麼知道這是來自PHP還是MySQL處理,我該如何解決?
謝謝你的時間。

回答

2

,我認爲這可以幫助你:

如果您使用的MySQL

mysql_query("SET NAMES 'utf8'"); 

如果您使用PDO使用:

$dbh->exec("set names utf8"); 

否則我可能是這些可以幫助你一個具體如下:

//At the Top of you files 
ini_set("default_charset", "UTF-8"); 
header('Content-type: text/html; charset=UTF-8'); 

//Before your queries 
mysql_query("SET CHARACTER SET utf8 "); 
mysql_set_charset('utf8'); 
+0

'$ db-> exec(「se t名字utf8「);'像魅力一樣工作。謝了哥們 ! – qreon 2014-11-08 03:37:08

+0

@歡迎您的光臨!祝你今天愉快。順便說一句:mysql驅動程序如何不提供明確的機制來使用字符集,你可以使用'SET NAMES' – Rizier123 2014-11-08 03:38:38

+0

@qreon如果你接受並且upvote答案是如何幫助你,那麼有同樣問題的人可以更快地找到答案! – Rizier123 2014-11-08 03:40:15