嗨,这是我在这个joomla网站的某些页面上发生的一个非常奇怪的错误:
如果您了解特定新闻的详细信息,则会正确显示à字符。
其他重音字符似乎没有受到影响。
我已经检查过MyFql数据库中的UTF-8编码是默认的,文本文件是UTF-8编码。
其他想法?
答案 0 :(得分:6)
在你的情况下,非常有趣的是它只影响字母à
!所以它不能成为编码问题。
这是我对你的问题的看法。字母à
在utf8中以两个字节编码。第一个字节是xC3
,在latin-1中是Ã
,第二个字节是......非破坏空间! (其他重音字母,例如è
由Ã
编码,后跟latin-1中的其他重音字母,并且不受影响。)
因此,我的猜测是你有一个脚本,在某处,删除或替换latin-1中的非中断空格,即字符xA0
。生成的孤立字节xC3
无法正确显示,因此会显示常规占位符�
。 (只需在latin-1中加载您的页面,您就会看到我是对的。)
找到删除不间断空格的脚本,你会没事的。
答案 1 :(得分:0)
您是否有可能在从数据库中检索到的文本中使用htmlentities
,htmlspecialchars
或html_entity_decode
?如果是这样,你需要在第三个参数中强制使用UTF8,因为它不是这些函数的默认字符集。
示例:htmlentities('£hello', null, 'utf-8');
答案 2 :(得分:0)
标志通常表示浏览器尝试显示的字符在所使用的字体中不可用。它可能不是一个à,如果它适用于其他页面(使用相同的字体)。