UTF-8法语重音字符问题


UTF-8 French accented characters issue

当我看到使用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原始数据的一部分:

éçà

i tried replace

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

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

,结果我得到mysql一个固定的,静态的正方形!

提示吗?

这是非常常见的字符集问题,您需要为MySQL连接手动设置连接编码(这些应该是建立连接后执行的第一个查询):

SET NAMES utf8;
SET CHARACTER SET utf8;

并且还要确保每个表都将CHARACTER SET设置为UTF-8

看起来像是配置错误问题。很可能你的数据库或驱动程序没有使用UTF-8。

当您更改为windows-1552和静态文件时,来自DB的数据显示OK的事实并不意味着您的源文件(正确地)在UTF-8中,但来自DB的数据以错误的编码格式到达。

无论发生什么,请坚持使用UTF-8。

UPDATE:有一个线程解释如何自动设置连接的编码:

在my.cnf?

中更改MySQL默认字符集为UTF-8