实际的 HTTP 响应标头将始终覆盖 HTML<meta>标头。根据您的评论:
我对标头不太熟悉,这是工作页面的响应标头:
日期:2010 年 6 月 24 日星期四 05:24:23 GMT
服务器:Apache/2.0.63 (Win32) PHP/5.2.11
X-Powered-By: PHP/5.2.11
内容长度:3622
保活:超时=15,最大值=100
连接:保持活动
内容类型:文本/html;字符集=UTF-8
200 好
和非工作页面:日期:2010 年 6 月 24 日星期四 05:26:54 GMT
服务器:阿帕奇
X-Powered-By: PHP/5.2.12
连接:关闭
传输编码:分块
内容类型:文本/html
200 好
看,非工作页面的 HTTP 响应标头有一个Content-Typeoftext/html 没有任何指定的字符集。它应该是text/html; charset=UTF-8。
在向响应正文发出任何字符 (HTML)之前,您可以通过将以下行添加到PHP 页面的顶部来解决此问题。
header('Content-Type: text/html; charset=UTF-8');
更新:根据评论,上述原因似乎被排除在外。下一步检查;文件本身是否保存为 UTF-8?右键单击页面并查看源代码。问号也有吗?如果是这样,那么在 FTP 传输到主机期间出现了问题。选择二进制而不是文本/ASCII 或在 FTP 客户端设置中为传输的文本文件设置字符编码,然后重试。