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