php – 在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);

它设置连接编码.

相关文章

在正式开始之前,我们先来看下 MySQL 服务器的配置和版本号信...
> [合辑地址:MySQL全面瓦解](https://www.cnblogs.c...
物理服务机的CPU、内存、存储设备、连接数等资源有限,某个时...
1 回顾 上一节我们详细讲解了如何对数据库进行分区操作,包括...
navicat查看某个表的所有字段的详细信息 navicat设计表只能一...
文章浏览阅读4.3k次。转载请把头部出处链接和尾部二维码一起...