基于HTML或PHP文件扩展名,同一文件的显示方式不同

时间:2018-03-06 22:42:51

标签: php html character-encoding

我有以下两个文件:

http://www.roostertooths.com/content/rvb/translations/test.html

http://www.roostertooths.com/content/rvb/translations/test.php

它们都具有以下字符编码:

<meta charset="iso-8859-1">

两个文件之间的唯一区别是它们的文件扩展名。但是,当您在浏览器中查看它们时,重音字符在html版本上正确显示,但在php版本中是菱形问号。这对我来说似乎很奇怪。有没有人对如何使php文件正确显示字符有一些见解?

我已经确认将html文件复制到新的php文件会重现问题,因此我的ftp程序在上传时不会对它们进行不同的编码。更多信息:

file test.html
test.html: ISO-8859 HTML document text, with very long lines

file test.php
test.php: ISO-8859 HTML document text, with very long lines

2 个答案:

答案 0 :(得分:5)

PHP默认字符集可能设置为&#34; UTF-8&#34;。

文件之间的唯一区别是扩展名,但扩展名意味着第二个文件由PHP处理,这会添加&#34;内容类型:text / html;字符集= UTF-8&#34;头。这具有meta设置的优先权。

您需要更改PHP.INI文件中的默认编码。

(实际上,我到处都是UTF-8,因为根据我的经验,从长远来看会减少麻烦,但我想这取决于你的设置和工作流程。) < / p>

答案 1 :(得分:0)

问题在于标题,您可以看到PHP文件将字符集添加到Content-Type标题:

PHP file header

但HTML没有:

HTML file header