如何使用 php 从 mysql 数据库中显示非英文字符?

Posted

技术标签:

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

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

【问题讨论】:

【参考方案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 不同,则表示您有问题。

以上是关于如何使用 php 从 mysql 数据库中显示非英文字符?的主要内容,如果未能解决你的问题,请参考以下文章

如何从 MySQL 数据库中存储和检索图像并使用 Php 将其显示在 html 中? [复制]

如何在php中使用下拉列表显示不同的mysql表

如何使用 php 从多行表单更新 mysql 数据库 [关闭]

如何从 mysql 数据库中获取数据并使用 PHP 将其发送给用户? [关闭]

如何正确使用连接/子查询从多个表中选择数据? (PHP-MySQL)

如何使用 PHP 从 MYSQL 中插入和检索图像 blob?