编程语言
首页 > 编程语言> > php – 即使使用标记,也无法使用UTF-8编码?

php – 即使使用标记,也无法使用UTF-8编码?

作者:互联网

我将一个Joomla 1.5网站改为2.5,几乎一切都很顺利,但我正在与一个角色的展示作斗争.在现场网站上有一些文字,如“You Agency guys are twisted.”,它显示正常,但在转换后的网站上,相同的数据库文章显示如下 你们的代理人都是扭曲的.

现在,我已经验证了这两个元素具有完全相同的计算样式.但感觉就像字体问题.这可能是Joomla 2.5如何编码这个角色的问题吗?

编辑1

评论结束后,我去验证了数据库.我发现旧数据库的character_set_database是latin1而不是utf8,所以我运行了这个语句:

alter database my_database default charset latin1;

现在所有字符集变量在两个数据库之间排列.此外,我验证了页面的字符集是utf-8,因为它发出了这个< metadata>标签:

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

但是,字符仍然无法正常显示.

编辑2

我也尝试将我的default_charset设置为PHP的utf-8:

default_charset = "utf-8"

在添加该行之前,甚至没有设置,所以它将是我猜测的Apache默认值.

编辑3

我现在还验证了index.php文件有一个Content-Type标题为text / html;字符集= UTF-8.但是,这些特殊字符仍然没有正确显示.

解决方法:

尝试先运行此查询:

mysql_query("SET NAMES 'utf8'");

我最后一次遇到字符集问题是因为即使其他所有内容都是UTF-8(提供的HTML,我编写的代码,数据库表等),数据库连接仍然在另一个字符集中传递所有内容.这应该解决这个问题.

编辑:正如下面的@ null.point3r所提到的,使用以下代码是一个更好的选择,因为转义字符串可能仍然使用错误的编码:

$mysqli->set_charset('utf8')

标签:php,mysql,joomla,joomla2-5
来源: https://codeday.me/bug/20190716/1478622.html