我有两个类似的PHP页面,一个正确显示英国英镑符号,另一个显示黑色钻石?在它。
为了诊断问题,我将代码缩减了,现在它们是相同的,但仍然以不同的方式显示。怎么可能??? 这是代码 `
<head>
<meta http-equiv="Content-Language" content="en-gb">
<meta http-equiv="Content-Type" content="text/html; charset=utf8">
</head>
<body>
<?php
echo '<p>';
echo "£"."123";
?>
</body>
</html>`
在使用原始代码时,我似乎可以通过删除charset = utf8来修复它,但是如果我从另一个中删除它,那么它会带有带有重音的大写字母A前缀。
这里发生了什么?
答案 0 :(得分:1)
您已在apache配置中配置了另一个字符集。也许你的php被ISO-8859-1
占用,你在HTML UTF-8
中定义。这是不一致的。尝试在apache配置中定义UTF-8
。
见这篇文章:
How to change the default encoding to UTF-8 for Apache?
在httpd.conf中添加(或者如果它已经存在则进行更改):
AddDefaultCharset utf-8
答案 1 :(得分:1)
问题发生的原因是PHP文件以不同的编码保存。表现良好的一个编码 UTF-8 ,而有问题的文件编码 Windows-1252 。我使用Bluefish并且它在那里看起来都很好,但是当我在文件上运行cat
命令时,我可以看到奇怪的字符。
感谢您的帮助!