我在 PHP 页面上有一个表单,用于将数据插入 MySQL数据库。
某些输入字段可能包含é
,è
,â
等UTF8字符。当它们实际插入数据库时,一切都搞砸了。例如,列显示Qréon
而不是Qréon
。
我在页面顶部使用setLocale(LC_CTYPE, 'FR_fr.UTF-8');
表示PHP,<meta charset="utf-8">
位于我的HTML标题中。
我的数据库由 MySQL 运行,存储引擎为 InnoDB ,排序规则为utf8_general_mysql500_ci
。我也试过utf8_general_ci
和utf8_bin
,但我没有运气。
我如何知道这是来自PHP还是MySQL处理,以及如何解决? 谢谢你的时间。
答案 0 :(得分: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');