当我使用phpmyadmin查看存储在mysql数据库中的数据时,字符完全按照éàç存储,但是当我使用php在具有以下精确结构的html文档上显示这些数据时:UTF-8法语重音字符问题
<!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'并且静态文件不显示时,来自数据库的数据显示OK,这可能意味着您的源文件以UTF-8格式(正确),但数据库中的数据以错误的编码格式到达。 无论发生什么,坚持UTF-8。 – ubik 2013-04-20 17:20:57
谢谢您的回复,我已经检查了数据库,发现排序规则设置为'latin1_swedish_ci',这可能是问题的根源吗? – Mbarry 2013-04-20 17:24:34
是的,这是问题的根源,你存储你的数据在MySQL ascii中,但然后试图显示它在utf8在你的html .. – Nelson 2013-04-20 17:26:32