首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何将MySQL数据库中的特殊字符显示到html中?

如何将MySQL数据库中的特殊字符显示到html中?
EN

Stack Overflow用户
提问于 2013-05-18 17:28:51
回答 1查看 3.8K关注 0票数 0

我有一个巨大的数据库,里面存储了很多语言。所有存储在utf8_unicode_ci和我的数据库排序规则中的数据都是utf8_unicode_ci,我使用特殊的php页面来调用sql数据,这是我的代码:

代码语言:javascript
复制
<?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,我想知道这里有什么我遗漏的东西吗?如何在我页面上显示这些字符

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-05-18 17:39:43

在连接到MySQL后尝试使用SET NAMES utf8

代码语言:javascript
复制
$db1 = new db_mysql($conf['db_hostname'], $conf['db_username'], 
    $conf['db_password'], $conf['db_name']);

$db1->query("SET NAMES utf8");

正如manual所说:

SQL指示客户端将使用什么字符集将

语句发送到服务器...它还指定服务器将结果发送回客户端时应使用的字符集。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16622692

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档