Php 同一文件在两台服务器上以不同方式显示UTF-8字符

Php 同一文件在两台服务器上以不同方式显示UTF-8字符,php,utf-8,Php,Utf 8,在实习生后面清理:这个包含法语文本的文件在我的测试台服务器上正确显示重音UTF-8字符 该页面有 将页面移动到生产服务器时,即使在 添加了 但是,如果直接访问include,则编码问题将消失: 关于如何纠正这个问题,有什么建议吗 Live HTTP Headers初始块显示正确的编码 http://vps6533.inmotionhosting.com/~hnocor5/surrey/index.php?page=project_presentation_fr GET /~hnocor5

在实习生后面清理:这个包含法语文本的文件在我的测试台服务器上正确显示重音UTF-8字符

该页面有

将页面移动到生产服务器时,即使在

添加了

但是,如果直接访问include,则编码问题将消失:

关于如何纠正这个问题,有什么建议吗

Live HTTP Headers初始块显示正确的编码

http://vps6533.inmotionhosting.com/~hnocor5/surrey/index.php?page=project_presentation_fr

GET /~hnocor5/surrey/index.php?page=project_presentation_fr HTTP/1.1
Host: vps6533.inmotionhosting.com
User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:9.0.1) Gecko/20100101 Firefox/9.0.1
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: en-us,en;q=0.5
Accept-Encoding: gzip, deflate
Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7
Connection: keep-alive

HTTP/1.1 200 OK
Date: Sun, 08 Jan 2012 21:31:28 GMT
Server: Apache
Keep-Alive: timeout=3, max=100
Connection: Keep-Alive
Transfer-Encoding: chunked
Content-Type: text/html; charset=UTF-8

注意,当我将
字符集
更改为:

<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"/>

它似乎起作用了。演示:


可能它不是
UTF-8
编码的?您应该检查上传的文件头是否定义了UTF-8或ANSI,如果是ANSI,这可能是问题的原因。两个URL上的编码错误相同(使用Chrome)。这是您发送的标题:
HTTP/1.1 200确定日期:Sun,2012年1月8日21:45:37 GMT服务器:Apache保持活动:超时=3,最大值=100连接:保持活动传输编码:分块内容类型:text/html
数据来自同一数据库吗?或者您有开发和生产数据库吗?感谢您的回复。我不清楚这个建议。您能详细说明一下吗?这意味着浏览器接收到的文本不在utf-8中。在此处添加了一个带有标记更改的测试文件;我的浏览器没有变化:@jerrygarciuh-你的PHP标题的
内容类型仍然是
text/html;charset=UTF-8
。Ahhh-在生成测试文件时,我没有删除添加的PHP头。这确实解决了它!非常感谢。文件中有什么不正确的地方?嗯,我真的不是一个编码专家,我搞糊涂了。但是当我看到这种情况时,通常是因为内容是在某种媒体(嗯,MS Word)中编写的,而这种媒体的编码并不像预期的那样。我不能具体地告诉你,除了如果你在源文件/记录中混合了很多有问题的编码,这将是一个很难解决的问题。