【问题标题】:How do i display non english characters form mysql database using php?如何使用 php 从 mysql 数据库中显示非英文字符?
【发布时间】:2011-09-03 20:35:37
【问题描述】:

我创建了一个网页,需要以非英文字符存储信息。我使用带有字符集 utf8 和整理 utf8_general_ci 的 PHPMyAdmin 创建了数据库和表,我在该表中输入了一些示例数据,在 PHPMyAdmin 浏览区域中我可以看到非英文字符,但是当我使用 php 查询这些表数据时,它显示为问号(?????像这样)

【问题讨论】:

    标签: php mysql character-encoding


    【解决方案1】:

    尝试在标题中添加:

    <meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
    

    请参阅this page,了解针对不同内容类型执行此操作的不同方式。

    【讨论】:

    • 我已经添加了这些行,但我仍然得到问号
    • 确保您的 php 客户端也使用 utf-8 字符集,mysql_set_charset('utf8',$conn);请参阅manpage for this function
    • 当您使用 mysql_connect() 打开数据库连接时,我想您需要确保客户端使用的是 utf8。 db 可能正在打开到默认 ISO-8859-1 或其他一些非 utf8 代码页的客户端连接。
    【解决方案2】:

    您如何确定您的查询结果不是格式正确的 utf8?如果你在网站上展示它,请记住在你的 head-section 中有一个正确形成的元结构,如下所示:

    <meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
    

    或者,在 php 中格式化它的另一种方式...

    <?
    ...somecode...
    header ('Content-type: text/html; charset=utf-8');
    ...morecode...
    

    否则您的浏览器可能会尝试使用不同的字符编码来显示它。

    总而言之,PHP 对 utf8 字符的处理非常好。 Ofc 有些事情必须考虑,here's a good summary about this

    【讨论】:

      【解决方案3】:

      如果您的数据库的其余部分不是 UTF8 格式,而只有这个表是 UTF8 格式,您可以更改 HTML 头部的字符集或使用 utf8_decode() 来解码 utf8 字符串。

      http://us.php.net/manual/en/function.utf8-decode.php

      【讨论】:

      • 我的数据库和表格已经是 utf8 格式,我可以在 phpmyadmin 表格浏览区域看到非英文字母,只有在我的网页中它没有显示 - 我包含了 content-type utf8还有!
      • 在 PHPmyadmin 页面上使用 firefox 右键单击​​ -> 页面信息,您应该有一个带有编码的窗口。现在对您的 PHP 页面执行相同的操作,如果它与 Phpmyadmin 不同,则表示您有问题。
      猜你喜欢
      • 2012-07-05
      • 1970-01-01
      • 2019-04-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-09-17
      • 1970-01-01
      • 2016-12-13
      相关资源
      最近更新 更多