Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/461.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php UTF8文本显示????从数据库查询时_Php_Javascript_Mysql_Sql_Json - Fatal编程技术网

Php 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

当我输入这个代码并从数据库中调用它时,它会将文本显示为问号或字母,它们是阿拉伯字母,所以UTF8应该可以工作,但我不知道现在它不会工作

<?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,