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

前端之家收集整理的这篇文章主要介绍了php – 在UTF-8网站上无法正确显示的字符前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
@H_502_1@我已经完成了我能想到的一切,但是在这个网页上没有正确显示特殊字符.

@H_502_1@例如,在数据库中它是:

@H_502_1@但在网站上它是:

@H_502_1@

  1. Nouveaux Ralistes
@H_502_1@这是我检查过的一切……

@H_502_1@数据库设置为UTF-8:

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

@H_502_1@页眉声明UTF-8:

@H_502_1@元字符集设置为UTF-8:

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

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

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

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

@H_502_1@

  1. class Exhibition {
  2. public $exhibitionDetails;
  3. public function __construct(Database $db,$exhibitionID){
  4. $this->_db = $db;
  5. $params['ExhibitionID'] = $exhibitionID;
  6. $STH = $this->_db->prepare("SELECT *
  7. FROM Exhibition
  8. INNER JOIN Schedule
  9. ON Exhibition.ExhibitionID = Schedule.ExhibitionID
  10. WHERE Schedule.Visible = 1
  11. AND Exhibition.ExhibitionID = :ExhibitionID;");
  12. $STH->execute($params);
  13. $this->exhibitionDetails = $STH->fetchAll(PDO::FETCH_ASSOC);
  14. }
  15. }
@H_502_1@和…

@H_502_1@

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

@H_502_1@最后……

@H_502_1@

  1. PHP echo $exhibition->exhibitionDetails[0]["Desc"]; ?>
最佳答案
如果您使用的是MysqL_ *函数

@H_502_1@

  1. MysqL_query("SET NAMES 'utf8'");
@H_502_1@如果您使用的是PDO

@H_502_1@

  1. $dsn = 'MysqL:host=localhost;dbname=testdb';
  2. $username = 'username';
  3. $password = 'password';
  4. $options = array(
  5. PDO::MysqL_ATTR_INIT_COMMAND => 'SET NAMES utf8',);
  6. $dbh = new PDO($dsn,$username,$password,$options);
@H_502_1@它设置连接编码.

猜你在找的MySQL相关文章