【发布时间】:2013-04-13 22:28:15
【问题描述】:
当我使用 phpmyadmin 看到存储在 mysql 数据库中的数据时,字符完全存储为 é à ç 但是当我使用 php 在具有以下确切结构的 html 文档上显示这些数据时:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title></title>
</head>
<body>
</body>
</html>
我得到的是正方形而不是重音字符,但是,对于尚未从同一页面中的 mysql 加载的静态内容上的任何重音字符,我没有这个问题。
当我在页面的源代码上看到它们似乎是相同的!例如:
源代码上的部分静态数据显示为:
éçà
部分mysql原始数据:
éçà
我尝试替换
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
与
<meta http-equiv="Content-Type" content="text/html; charset=windows-1552" />
结果我得到了 mysql 一个固定的,带有正方形的静态!
有什么提示吗?
【问题讨论】:
-
看起来是配置错误的问题。也许您的数据库驱动程序没有使用 UTF-8?当您更改为
windows-1552时,来自数据库的数据显示正常,而静态文件并不意味着您的源文件(正确)采用 UTF-8,但来自数据库的数据正在到达编码格式错误。无论发生什么,坚持使用 UTF-8。 -
感谢您的回复,我检查了数据库,发现排序规则设置为
latin1_swedish_ci,这可能是问题的根源吗? -
是的,这就是问题的根源,您将数据存储在 mysql 中的 ascii 中,然后尝试在 html 中将其显示为 utf8 ..
-
是的,很可能就是这个问题。
-
phpmyadmin 的
utf-8菜单级别有很多选择,我应该选择哪一个?
标签: php html mysql character-encoding