加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > MySql教程 > 正文

php – 在UTF-8网站上无法正确显示的字符

发布时间:2020-12-11 23:45:36 所属栏目:MySql教程 来源:网络整理
导读:我已经完成了我能想到的一切,但是在这个网页上没有正确显示特殊字符. 例如,在数据库中它是: 但在网站上它是: Nouveaux R?alistes 这是我检查过的一切 数据库设置为UTF-8: 该页面是用NetBeans编写的,文档编码设置为UTF-8: 页眉声明UTF-8: 元字符集设置为

我已经完成了我能想到的一切,但是在这个网页上没有正确显示特殊字符.

例如,在数据库中它是:

但在网站上它是:

Nouveaux R?alistes

这是我检查过的一切……

数据库设置为UTF-8:

该页面是用NetBeans编写的,文档编码设置为UTF-8:

页眉声明UTF-8:

元字符集设置为UTF-8:

我甚至在我的.htacess中添加了以下行:

但是字符仍然没有正确显示,我从W3C验证器得到以下错误:

我觉得我已经尝试了一切,但它仍然无法运作. (我甚至在PHP中尝试过htmlspecialchars和htmlentities,但页面甚至没有呈现!)

UPDATE
根据要求,这是我正在使用的代码:

class Exhibition {
    public $exhibitionDetails;    

    public function __construct(Database $db,$exhibitionID){
        $this->_db = $db;

        $params['ExhibitionID'] = $exhibitionID;

        $STH = $this->_db->prepare("SELECT * 
            FROM Exhibition
            INNER JOIN Schedule
                ON Exhibition.ExhibitionID = Schedule.ExhibitionID            
            WHERE Schedule.Visible = 1
                AND Exhibition.ExhibitionID = :ExhibitionID;");

        $STH->execute($params);

        $this->exhibitionDetails = $STH->fetchAll(PDO::FETCH_ASSOC);

    }
}

和…

try {
    $db = new Database(SITE_ROOT."/../");
    $db->setAttribute(PDO::ATTR_ERRMODE,PDO::ERRMODE_EXCEPTION);
    $exhibition = new Exhibition($db,$_GET['id']);
} catch (PDOException $e) {
    echo "

最后……

最佳答案 如果您使用的是mysql_ *函数:

mysql_query("SET NAMES 'utf8'");

如果您使用的是PDO

$dsn = 'mysql:host=localhost;dbname=testdb';
$username = 'username';
$password = 'password';
$options = array(
    PDO::MYSQL_ATTR_INIT_COMMAND => 'SET NAMES utf8',); 

$dbh = new PDO($dsn,$username,$password,$options);

它设置连接编码.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读