【发布时间】:2016-04-02 17:14:46
【问题描述】:
我将数据库设置为UTF8 GENERAL CI 作为我的表的排序规则。但是当我尝试使用以下 PHP 代码进行输出时,会出现问号代替 UTF 字符(我正在尝试打印区域语言字符)...
以下是我的代码:
<?php
class Article implements JsonSerializable{
private $id;
private $title;
private $content;
public function getId() {
return $this->id;
}
public function getTitle() {
return $this->title;
}
public function getContent() {
return $this->content;
}
public static function getById($id) {
$db = newMysqli ();
$query = "select * from articles where _id=?";
$stmt = $db->prepare ( $query ) or dieOnError ( $db );
$stmt->bind_param ( "i", $id ) or dieOnError ( $db );
$stmt->execute () or dieOnError ( $db );
$member = new Article();
$stmt->bind_result ( $member->id, $member->title, $member->content);
$stmt->fetch () or dieOnError ( $db );
$stmt->close ();
return $member;
}
public function jsonSerialize(){
return get_object_vars($this);
}
}
【问题讨论】:
-
PHP 当然在这里输出任何未经修改的字符串,这不是问题。问题是您发送给客户的字符编码是什么,以及您的客户是否使用实际上具有这些字符字形的字体。
-
表格/列可能是
CHARACTER SET latin1。让我们看看SHOW CREATE TABLE。 -
你试过
SET NAMES UTF8查询吗?