Php UTF8文本显示????从数据库查询时
当我输入这个代码并从数据库中调用它时,它会将文本显示为问号或字母,它们是阿拉伯字母,所以UTF8应该可以工作,但我不知道现在它不会工作Php UTF8文本显示????从数据库查询时,php,javascript,mysql,sql,json,Php,Javascript,Mysql,Sql,Json,当我输入这个代码并从数据库中调用它时,它会将文本显示为问号或字母,它们是阿拉伯字母,所以UTF8应该可以工作,但我不知道现在它不会工作 <?php header("Content-Type: application/json; charset=UTF-8"); $server = ""; $username = ""; $password = ""; $database = ""; $con = mysql_connect($server, $username, $password
<?php
header("Content-Type: application/json; charset=UTF-8");
$server = "";
$username = "";
$password = "";
$database = "";
$con = mysql_connect($server, $username, $password) or die ("Could not connect: " . mysql_error());
mysql_select_db($database, $con);
$sql = "SELECT * FROM events WHERE id='1' ";
$result = mysql_query($sql) or die ("Query error: " . mysql_error());
$records = array();
while($row = mysql_fetch_assoc($result)) {
$records[] = $row;
}
mysql_close($con);
print_r($records);
?>
检查您的数据库是否也使用UTF-8:
SHOW CREATE DATABASE `your_db_name`
您是如何插入数据的
还要验证您的web服务器是否配置良好(使用UTF8)。以下是将客户端和数据库之间的连接设置为UTF-8的代码
$con = mysql_connect($server, $username, $password) or die ("Could not connect: " . mysql_error());
mysql_select_db($database, $con);
mysql_query('SET NAMES utf8');
mysql_query('SET CHARACTER_SET_CLIENT=utf8');
mysql_query('SET CHARACTER_SET_RESULTS=utf8');
$sql = "SELECT * FROM events WHERE id='1' ";
$result = mysql_query($sql) or die ("Query error: " . mysql_error());
在开始SQL语句之前,请输入这些代码。您需要在存储utf8的列上设置utf8排序规则:
rowname varchar(100) COLLATE utf8_unicode_ci NOT NULL,
…而且连接也很重要(请参阅Roger Ng的答案)尝试在当前查询之前添加此选项:
mysql\u查询(“设置名称‘utf8’”)代码>。编码问题。用于保存数据库中的数据的编码不同于PHP用来显示数据的编码。您的DB支持存储UTF字符,考虑修改您的代码来代替正在被禁止的<代码> MySqL**/Cuff>函数。我已经更新了我的答案。将它放在mysql\u connect()
之后和mysql\u查询($sql)
之前。使用mysql\u set\u字符集
,而不是集名称
查询。看到了。谢谢,但我已经把它放在那里了它起作用了,但我只是问是否有其他方法可以把它放在每个页面上??我使用了mysql\u set\u charset('utf8',$con);非常好,谢谢@deceze&roger@BiGHeaDmysql\u set\u字符集('utf8',$con);对我有用。谢谢
rowname varchar(100) COLLATE utf8_unicode_ci NOT NULL,