我有一个存储了大量语言的庞大数据库。存储在utf8_unicode_ci和我的数据库排序规则中的所有数据都是utf8_unicode_ci,我使用特殊的php页面来调用sql数据 这是我的代码:
<?php
header('Content-Type: text/html; charset=utf-8');
$date=$_POST['date'];//I get this information from ajax request
$server_root = "./";
if(file_exists("{$server_root}include-sql/mysql.class.php"))
{
include_once("{$server_root}include-sql/mysql.class.php");
}
include_once("{$server_root}config.php");//database connection information
$db1;
$db1 = new db_mysql($conf['db_hostname'], $conf['db_username'], $conf['db_password'], $conf['db_name']);
$sql = $db1->query("select * from matches where match_date='$date'");
$i=0;
while($sql_results = $db1->fetch_array($sql))
{
$match[$i]['tournament_id'] = $sql_results['tournament_id'];
$match[$i]['id'] = $sql_results['id'];
$match[$i]['match_id'] = $sql_results['match_id'];
$match[$i]['match_date'] = $sql_results['match_date'];
$match[$i]['match_time'] = $sql_results['match_time'];
$match[$i]['match_status'] = $sql_results['match_status'];
$match[$i]['match_venue'] = $sql_results['match_venue'];
$match[$i]['venue_id'] = $sql_results['venue_id'];
$match[$i]['static_id'] = $sql_results['static_id'];
$match[$i]['match_week'] = $sql_results['match_week'];
$match[$i]['localteam_name'] = $sql_results['localteam_name'];
$match[$i]['localteam_score'] = $sql_results['localteam_score'];
$match[$i]['localteam_ft_score'] = $sql_results['localteam_ft_score'];
$match[$i]['localteam_et_score'] = $sql_results['localteam_et_score'];
$match[$i]['localteam_pen_score'] = $sql_results['localteam_pen_score'];
$match[$i]['localteam_id'] = $sql_results['localteam_id'];
$match[$i]['visitorteam_name'] = $sql_results['visitorteam_name'];
$match[$i]['visitorteam_score'] = $sql_results['visitorteam_score'];
$match[$i]['visitorteam_ft_score'] = $sql_results['visitorteam_ft_score'];
$match[$i]['visitorteam_et_score'] = $sql_results['visitorteam_et_score'];
$match[$i]['visitorteam_pen_score'] = $sql_results['visitorteam_pen_score'];
$match[$i]['visitorteam_id'] = $sql_results['visitorteam_id'];
$match[$i]['halftime_score'] = $sql_results['halftime_score'];
$match[$i]['stage_id'] = $sql_results['stage_id'];
$i++;
}
echo json_encode($match);//return json to my ajax function
?>
问题是mysql中的所有特殊字符都没有在浏览器的html中显示或显示null我知道有什么东西我想念它吗?如何在我的页面上显示这些角色
答案 0 :(得分:0)
连接到MySQL后尝试使用SET NAMES utf8
:
$db1 = new db_mysql($conf['db_hostname'], $conf['db_username'],
$conf['db_password'], $conf['db_name']);
$db1->query("SET NAMES utf8");
正如manual所说:
SET NAMES表示客户端将用于发送SQL的字符集 语句到服务器...它还指定服务器应该的字符集 用于将结果发送回客户端。