我有一些法语文本(包含重音字符,如 "é"), 存储在MySQL表中,其排序utf8_unicode_ci(表和列),我想在HTML5页面上输出。
超文本标记语言页面字符集为UTF-8(
但是,在输出页面上,特殊字符(如“é”)显示为乱码,并替换为“�".
当我浏览数据库时(通过phpMyAdmin),这些重音字符显示得很好。
我错过了什么?
(注意:将页面编码(通过火狐的“网络开发者”菜单)更改为ISO-8859-1解决了这个问题...除了直接出现在PHP文件中的特殊字符,这些字符现在已经损坏了。但是无论如何,我宁愿理解为什么它不能作为UTF-8工作,也不愿在不理解它为什么工作的情况下改变编码。^^;)
如果您的php.ini
default_charset
未设置为UTF-8,则需要使用Content-type
来定义数据。在文件顶部应用以下标头:
header("Content-type: text/html; charset=utf-8");
如果您仍有编码问题,原因可能是以下原因之一:
我以前也遇到过同样的问题,我所做的如下
1) 使用记事本(几乎可以适应任何编码)或eclipse,并确保在没有BOM的情况下以UTF-8保存或打开它。
2) 使用header('Content-type:text/html;charset=UTF-8')在PHP头中设置编码
3)删除PHP文件开始和结束时的任何额外空格。
4)设置我所有的表和列编码为
utf8mb4_general_ci
或utf8mb4_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) 使用元标记
7)使用某种语言代码进行法语
8) 将html元素lang属性更改为所需的语言
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" lang="fr">
我会更新更多,因为我以前解决这个问题真的很困难,因为我在过去的项目中处理的是日语角色
9) 有些字体在客户端PC中不可用,您需要使用Google字体将其包含在CSS中
10)不要以
结束你的PHP源文件?
注:
但是,如果我上面说的一切都不起作用,请尝试根据您真正想要显示的字符集调整您的编码。对于我来说,我将所有内容都设置为
SHIFT-JIS
,以显示我的所有日语字符,它确实可以正常工作。但是使用UFT-8必须是你的首要任务
问题内容: 我有一些法语文本(包含带重音符号,例如“é”),存储在一个排序规则为utf8_unicode_ci(表和列)的MySQL表中,我希望在HTML5页面上输出该文本。 HTML页面字符集为UTF-8( ),PHP文件本身被编码为“ UTF-8 without BOM”(我在Windows上使用Notepad ++)。我使用PHP5请求数据库并生成HTML。 但是,在输出页面上,特殊字符(例
问题内容: 我有一个webapp,它在MySQL数据库中存储法语文本(可能包含重音字符)。通过PHP直接检索数据时,带重音的字符变得乱码。例如: 因此,我使用(或)将字符串转换为html实体,一切都很好。但是,当我输出包含重音字符和HTML元素的数据时,事情变得更加复杂。例如,被转换为浏览器,因此浏览器无法理解。 如何同时正确显示重音字符和正确解析HTML? 谢谢! 问题答案: 也许你可以看看和
问题内容: 我正在尝试查找带有重音符号的数据。我已经试过了: 而且有效。它查找XML数据字段包含where的所有记录。问题在于它仅将大写字母E与重音符匹配。我试图编写一个更通用的查询,以使用对等类查找带有重音元音(a,e,i,o,u,大写和小写以及任何重音)的所有数据。我想要一个正则表达式 仅 匹配重音元音,但是我不确定如何获取它,因为等价类(例如匹配 所有 e的(带或不带有重音))都可以。 另外
我必须编写一个小程序来删除作为输入的字符串中的重音。我还必须创建一个函数,将每个带重音的字符替换为相应的不带重音的字符,我有一个循环,为main中的每个字符调用该函数: 问题是,如果我在main中提供字符串“é”作为输入,则该字符串被视为大小为2的字符串(参见下面的示例),并且上面的函数被调用两次而不是一次。此外,作为函数输入的char不是正确的。我想我在函数中遇到了相同的大小问题。这个重音不应该
我已经研究了堆栈溢出(替换字符...呃,JavaScript如何不遵循有关RegExp的Unicode标准等等),但还没有找到这个问题的具体答案: 目前,我正在讨论三种添加支持的方法中的一种,所有这些方法我都进行了测试和工作(至少在某种程度上,我不知道第二种方法的“范围”是什么)。它们在这里: 这将使姓/名与中支持的任何重音字符正确匹配。 这与任何东西都是匹配的,至少以的形式是这样的。好吧,我想.
问题内容: 我已经研究了StackOverflow替换字符。eh,JavaScript如何不遵循有关RegExp的Unicode标准等),还没有真正找到问题的具体答案: 我正在强制UI中的字段匹配以下格式:( 最后一个[逗号空间]首先) ,并且我想提供对变音符号的支持,但是显然在JavaScript中,它比其他语言/平台要难一些。 这是我的原始版本,直到我想添加变音符号支持: 目前,我正在讨论增加