index.php:
<?php
include_once 'index_a.php';
?>
index_a.php:
<html>
<head>
<title>test</title>
</head>
<body>
casa
</body>
</html>
第一个结果来自index.php
和第二个index_a.php
。
为什么我要捍卫这些报价?
如果index_a.php
转换UTF-8中没有BOM的文件,则不会出现引号,但我希望文件以UTF-8编码。
答案 0 :(得分:2)
你的问题没有意义:UTF8文件编码可能(但不应该,因为UTF8的字节顺序是固定的)有一个BOM。在这两种情况下,您的文件都将采用UTF8编码,因此您已经完成了。这里发生的事情是你问XY question
那么,你真正想要知道的是:为什么这些报价出现在没有BOM的普通UTF8编码文件中,但是当有BOM时却没有,而答案就是那个您提供的浏览器HTML代码可以是任何版本的HTML,并希望它知道您要呈现的版本。
在不了解文档类型的情况下,浏览器可能会或可能不会将标记之间的任何空格视为单个空格,或者不是空格,这取决于它所猜测的渲染模式。因此,如果您真的不想要那个" "
,那么您不应该依赖文件编码,那么您应该向浏览器明确说明您所做的事情。重新给它渲染是正确的HTML。添加
<!doctype html>
在顶部,以便所有浏览器都知道这是一个现代的HTML5内容文件,应该相应地进行解析,而不是回到不可预知的怪癖模式。
修改强>
http://jsbin.com/helikafuni/1/显示正确的HTML5文档类型和元素使用(您使用古老的 HTML4.1语法。现在是时候阅读HTML5如何改变了很多规则并使用这些新规则)
答案 1 :(得分:0)
如果您想更改文件的编码,我建议您使用Notpad++!
安装后,您可以在其中打开文件并更改编码,如下所示:
(参见“转换为UTF-8”一节)
更新:
这应该适合你:
的index.php:
<?php
include_once 'index_a.php';
?>
index_a.php:
<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>test</title>
</head>
<body>
casa
</body>
</html>