【发布时间】:2011-09-03 20:35:37
【问题描述】:
我创建了一个网页,需要以非英文字符存储信息。我使用带有字符集 utf8 和整理 utf8_general_ci 的 PHPMyAdmin 创建了数据库和表,我在该表中输入了一些示例数据,在 PHPMyAdmin 浏览区域中我可以看到非英文字符,但是当我使用 php 查询这些表数据时,它显示为问号(?????像这样)
【问题讨论】:
标签: php mysql character-encoding
我创建了一个网页,需要以非英文字符存储信息。我使用带有字符集 utf8 和整理 utf8_general_ci 的 PHPMyAdmin 创建了数据库和表,我在该表中输入了一些示例数据,在 PHPMyAdmin 浏览区域中我可以看到非英文字符,但是当我使用 php 查询这些表数据时,它显示为问号(?????像这样)
【问题讨论】:
标签: php mysql character-encoding
尝试在标题中添加:
<meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
请参阅this page,了解针对不同内容类型执行此操作的不同方式。
【讨论】:
您如何确定您的查询结果不是格式正确的 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。
【讨论】:
如果您的数据库的其余部分不是 UTF8 格式,而只有这个表是 UTF8 格式,您可以更改 HTML 头部的字符集或使用 utf8_decode() 来解码 utf8 字符串。
【讨论】: