无法使用PHP从mysql数据库中检索希腊字符

时间:2012-05-22 15:42:05

标签: php mysql wamp collation

  • 目前在Wamp 2.20
  • MySQL版本:5.5.20
  • PHP版本:5.3.10
  • table collat​​ion:utf8-bin
  • header('Content-type: text/html; charset=utf-8');

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

3 个答案:

答案 0 :(得分:4)

确保您的客户端连接设置为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');

答案 1 :(得分:2)

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

echo htmlentities($data);

答案 2 :(得分:2)

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

来完成

此外,使用UTF-8(Unicode)时请记住:

  • 必须使用UTF-8编码保存所有文件;
  • MySQL表必须是UTF-8;
  • MySQL中的字段必须是UTF-8;
  • PHP必须设置为使用UTF-8;
  • 所有内容都必须采用UTF-8编码。