如何使用PHP从MySQL数据库显示非英文字符?

4

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

3个回答

2

尝试将以下代码添加到您的头部:

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

请查看这个页面了解在不同的内容类型上进行此操作的不同方法。


我已经添加了这些行,但仍然出现问号。 - srisar
请确保您的php客户端也使用utf-8字符集,mysql_set_charset('utf8',$conn); 参见此函数的手册页面 - Stephane Gosselin
当您使用mysql_connect()打开数据库连接时,我认为您需要确保客户端正在使用utf8。数据库可能正在向默认的ISO-8859-1或其他非utf8代码页打开客户端连接。 - Stephane Gosselin

0

如何确定查询结果不是正确格式的utf8?如果您在网站上显示它,请记得在头部区域中添加一个正确格式的meta构造,类似于以下内容:

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

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

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

否则,您的浏览器可能会尝试使用不同的字符编码来显示它。
总的来说,PHP处理utf8字符非常好。当然,有些事情必须考虑,这里有一个很好的摘要

0

我的数据库和表已经采用了utf8编码格式,我可以在phpmyadmin的浏览表区域看到非英文字符,只是在我的网页中没有显示——我也包含了content-type utf8! - srisar
使用 Firefox 浏览器打开 PHPmyadmin 页面,右键单击->页面信息,应该会弹出一个包含编码的窗口。现在对您的 PHP 页面执行相同操作,如果编码与 Phpmyadmin 不一致,则表示存在问题。 - zzarbi

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接