【问题标题】:Cant retrieve greek characters from mysql database with PHP [duplicate]无法使用PHP从mysql数据库中检索希腊字符[重复]
【发布时间】:2012-05-29 03:25:48
【问题描述】:
  • 目前在 Wamp 2.20 上
  • MySQL 版本:5.5.20
  • PHP 版本:5.3.10
  • 表排序规则:utf8-bin
  • header('Content-type: text/html; charset=utf-8');

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

【问题讨论】:

  • 查看您的 html 源代码以查看正在生成的内容。您可能需要先对字符进行编码,然后浏览器才能正确呈现它们。
  • 你也可以检查你的php文件的编码。
  • 检查这个post 这是同一个问题。

标签: php mysql wamp collation


【解决方案1】:

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

echo htmlentities($data);

【讨论】:

    【解决方案2】:

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

    【讨论】:

      【解决方案3】:

      确保使用ANSI as UTF-8 aka 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 编码。

      【讨论】:

      • 谢谢人。你的支票救了我
      猜你喜欢
      • 1970-01-01
      • 2012-10-04
      • 1970-01-01
      • 1970-01-01
      • 2016-07-29
      • 1970-01-01
      • 1970-01-01
      • 2015-12-14
      • 2021-08-12
      相关资源
      最近更新 更多