mySQL表中的重音字符

我有一些法语文本(包含带重音符号,例如“é”),存储在一个排序规则为utf8_unicode_ci(表和列)的MySQL表中,我希望在HTML5页面上输出该文本。

HTML页面字符集为UTF-8(),PHP文件本身被编码为“ UTF-8 without

BOM”(我在Windows上使用Notepad ++)。我使用PHP5请求数据库并生成HTML。

但是,在输出页面上,特殊字符(例如“é”)显示为乱码,并替换为“。”。

当我浏览数据库(通过phpMyAdmin)时,那些相同的带重音符的字符显示得很好。

我在这里想念什么?

(注意:将页面编码(通过Firefox的“

Web开发人员”菜单)更改为ISO-8859-1可以解决此问题…除了直接出现在PHP文件中的特殊字符(现在已损坏)之外,无论如何,我还是宁愿了解为什么它不能作为UTF-8使用,而不是在不了解其工作原理的情况下更改编码。^^;)

回答:

我以前遇到过同样的问题,下面是我做的

1)使用notepad ++(几乎可以适应任何编码)或Eclipse,并确保将其 。

2)在PHP标头中设置编码,使用 header('Content-type: text/html; charset=UTF-8');

3)删除PHP文件开头和结尾的所有多余空格。

4)所有的设置我的表和列编码到utf8mb4_general_ciutf8mb4_unicode_ci通过phpMyAdmin界面,或者您有任何MySQL客户端。此处提供两种编码的比较

5)将mysql连接字符集设置为UTF-8(我将PDO用于数据库连接)

  PDO::MYSQL_ATTR_INIT_COMMAND => "SET NAMES utf8"

PDO::MYSQL_ATTR_INIT_COMMAND => "SET CHARACTER SET utf8"

或者仅在获取任何数据之前执行SQL查询

6)使用中继标记 <meta http-equiv="Content-Type" content="text/html;

charset=utf-8"/>

7)对法语使用某种语言代码 <meta http-equiv="Content-language" content="fr" />

8)将html元素lang属性更改为所需的语言

<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" lang="fr">

并会进行更多更新,因为在我之前的项目中处理日语字符之前,我确实很难解决此问题

9)某些字体在客户端PC中不可用,您需要使用Google字体将其包含在CSS中

10)不要以 ?>

但是,如果我上面提到的所有内容都不起作用,请尝试根据您真正想要显示的字符集来调整编码,对我来说,我将所有内容都设置SHIFT-

JIS为显示所有日语字符,并且确实可以正常工作。但是使用UFT-8必须是您的首要任务

以上是 mySQL表中的重音字符 的全部内容, 来源链接: utcz.com/qa/406499.html

回到顶部