我正在尝试将一些阿拉伯数据存储在mysql数据库中
我已将html文档字符集设置为’utf8′
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
MySQL字符集设置为:UTF-8 Unicode(utf8)
MySQL连接排序规则设置为:utf8_general_ci
数据库和表的排序规则设置为:utf8_general_ci
另外,在我的PHP代码中,我使用了$mysqli-> set_charset(“ utf8”)函数来确保将字符集设置为ut8,但实际上没有任何作用,我使用html形式将数据发布到php脚本中,其中enctype为:enctype =“ multipart / form-data”,因为在此表单中我还上传了一张图片
奇怪的是,当我直接在mysql中编写查询时,阿拉伯字符正确存储而没有问题,但是当我使用php查询存储数据时,所有字符都以错误的字符集编码存储
有什么建议么 ?
解决方法:
奇怪,应该起作用!
成功连接到数据库后,尝试添加以下行:
$mysqli->query("SET NAMES 'utf8'");
$mysqli->query("SET CHARACTER SET utf8");
例如:
$mysqli = @new mysqli('DB_HOST', 'DB_USER', 'DB_PASS', 'DB_NAME');
if($mysqli->connect_errno) die('Connection Error!');
else{
$mysqli->query("SET NAMES 'utf8'");
$mysqli->query("SET CHARACTER SET utf8");
}
并在您的php页面的头部添加以下META标签:
<meta charset="utf-8">
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">