我正在尝试将一些阿拉伯数据存储在mysql数据库中 我已将html文档字符集设置为'utf8'
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
MySQL charset设置为:UTF-8 Unicode(utf8)
MySQL连接排序规则设置为:utf8_general_ci
数据库和表格排序规则设置为:utf8_general_ci
另外在我的php代码中,我使用$mysqli->set_charset("utf8")
函数来确保charset设置为ut8但实际上没有任何工作,我使用html格式将我的数据发布到php脚本,其中enctype是:enctype="multipart/form-data"
因为在此表单中我还上传了图片
奇怪的是,当我直接在mysql中编写查询时,阿拉伯字符正确存储没有问题,但当我使用php查询存储数据时,所有字符都存储在错误的字符集编码中
有什么建议吗?
答案 0 :(得分:3)
很奇怪,它应该有效!
尝试在成功连接数据库后添加这些行:
$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页面的head部分包含这些META标记:
<meta charset="utf-8">
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
答案 1 :(得分:0)
如果存在http标头,浏览器将忽略<meta http-equiv ...>
标记。尝试将它放在php页面的顶部:
header("Content-Type: text/html; charset=UTF-8");
答案 2 :(得分:0)
将此文件保存在您的网站,将htdocs文件夹保存为&#34; dbh.php,然后通过键入<?php include 'dbh.php';?>
将其包含在索引页面的顶部,您就可以开始使用了。
<?php
$conn = mysqli_connect("localhost", "root", "", "database name");
if(!$conn){
die("connection failed: ".mysqli_connect_error());
}else{
$conn->query("SET NAMES 'utf8'");
$conn->query("SET CHARACTER SET utf8");
}
答案 3 :(得分:0)
你可以试试这个。它应该工作
"<!-- Begin .post -->"
<h2 class="post-title">licenses new Internet</h2>
<h3 class="date-header">Thursday, 21 January 2017</h3>
<div class="post-body" style="text-align:justify;">
. . .
</div>
<div class="post-footer">
<em>posted by Me</em>
</div>
"<!-- End .post -->"