1
  • 目前在 Wamp 2.20
  • MySQL 版本:5.5.20
  • PHP版本:5.3.10
  • 表排序:utf8-bin
  • header('Content-type: text/html; charset=utf-8');

虽然我可以看到保存在 MySQL 表中的数据是希腊字符,但当我尝试从 PHP 中回显它们时,它们变成了“?” 问号。

4

3 回答 3

5

确保您的客户端连接设置为 UTF8。例子:

SQL

SET NAMES UTF8;

PHP MySQLi

mysqli_set_charset('utf8');

PHP PDO

$handle = new PDO("mysql:host=localhost;dbname=dbname",
  'username', 'password', 
  array(PDO::MYSQL_ATTR_INIT_COMMAND => "SET NAMES utf8"
));

PHP mysql(已弃用 -请勿使用

mysql_set_charset('utf8');
于 2012-05-22T15:46:33.047 回答
2

在回显您的数据之前,请尝试使用htmlentities对您的特殊字符进行编码。

echo htmlentities($data);
于 2012-05-22T15:45:58.633 回答
2

确保您的文件使用ANSI as UTF-8aka保存UTF-8 without BOM。您可以使用 NotePad++: http: //npp-community.tuxfamily.org/documentation/notepad-user-manual/document-properties/encoding

Also, when working with UTF-8 (Unicode) please remember :

  • All files must be saved using UTF-8 encoding ;
  • MySQL tables must be in UTF-8 ;
  • Fields in MySQL must be UTF-8 ;
  • PHP must be set to use UTF-8 ;
  • Everything has to be UTF-8 encoded.
于 2012-05-22T15:48:06.797 回答