重命名我的文件从.htm到.php搞砸了字符编码


renaming my files from .htm to .php screws up the character encoding..?

我的工作是在一个网站的SEO工作,完全是html和javascript。我看到的第一件事是,他们在每个页面上都硬编码了页眉和页脚(我想编辑)。

我决定我要改变所有的。htm文件为。php为了利用php的包括功能,并包括头和页脚作为一个单独的文件到每个页面(是的,我知道,我可以修改。htaccess文件处理。htm文件为。php,但有几个更多的原因,我想要。php)。

更改后,网站上的特殊字符开始以黑色背景上的问号或简单地作为普通问号显示。当我从主机的cPanel打开.php文件时,我在编辑器的顶部看到编码是UTF-8,所以我不明白问题是什么。为了解决这个问题,我所做的是一些我讨厌的"魔法",它并不总是从第一次开始工作-复制整个文件中的代码,将编码更改为us-ascii,保存(此时文件变成空的o.O),关闭,打开,粘贴代码,告诉编辑器以utf-8打开它(它创建一个新文件…),粘贴代码回来。然后将特殊字符(如西里尔字母等)正确显示。

我不想这样做,因为网站上有很多页面,而且我想了解正确的方法。有人可以提供帮助吗?

文件编码必须匹配HTTP头和HTML文件的元标记声明的字符集。

你的HTML中有这样的内容吗:

<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">

当你用Firebug(或其他任何东西)检查HTTP报头时,你是否看到类似这样的内容(注意"Content-Type"):

Response Headers
Date              Thu, 22 Sep 2011 14:53:26 GMT
Server            Apache mod_fcgid/2.3.6 mod_auth_passthrough/2.1 mod_bwlimited/1.4 FrontPage/5.0.2.2635
Expires           Thu, 19 Nov 1981 08:52:00 GMT
Cache-Control     private, max-age=10800, pre-check=10800
Content-Language  EN
Last-Modified     Fri, 22 Jul 2011 13:22:29 GMT
Content-Type      text/html; charset=UTF-8

当你在编辑器中打开文件并检查它的字符集时,它是否与上面相同?如果您使用UTF-8,请确保没有BOM被添加到您的文件中(至少对于PHP文件)。我猜你的编辑把事情搞砸了…你能提供URL到一个实际的页面吗?它可以帮助我们了解到底发生了什么