无法弄清楚MySQL或PHP是否严重编码UTF8字符串

时间:2014-11-08 03:29:15

标签: php mysql encoding utf-8

我在 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_ciutf8_bin,但我没有运气。

我如何知道这是来自PHP还是MySQL处理,以及如何解决? 谢谢你的时间。

1 个答案:

答案 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');