4

关于以 UTF-8 编码 PHP 文件,我遇到了非常奇怪的问题。例如,我有两个文件:index.php 和 require.php。在 index.php 文件中我有这个代码

<!DOCTYPE HTML>
<html>
<head>
<meta charset="UTF-8">
</head>
<?php
require 'require.php';
?>
<body>
<a></a>
</body>
</html>

在 require.php 我只有空的 PHP 标签

<?php

?>

当我打开 index.php 并使用 Chrome 的 Element Inspector 查看输出 HTML 时,我得到以下信息:

<html>
<head>
<meta charset="UTF-8">
</head>
<body>
"
"
<a></a>
</body>
</html>

注意body开头的两个奇怪的引号。如果我从 PHP 代码中删除 require 语句或只是删除它们消失的标签。更奇怪的是,如果我在 require.php 文件中回显某些内容,它会在这两个引号之间输出。如果我在 require.php 中将编码从 UTF-8 更改为 ANSI,问题就会消失

我一直在寻找答案几个小时,并没有找到有同样问题的单身人士。

4

3 回答 3

1

添加标题后变得更糟。虽然,将文件转换为没有 BOM 的 UFT-8 对我有用!谢谢你。

于 2015-02-28T08:01:18.467 回答
1

尝试添加header('Content-type: text/html; charset=utf-8');index.php,并从 require.php 中删除结尾的 '?>'。

于 2012-04-08T14:10:23.503 回答
0

如果您要发送纯文本文件,则需要此...

<?php
    header('Content-type: text/plain; charset=utf-8');
    print('中文。');
?>

要发送 HTML,您需要将标题的“text/plain”更改为“text/html”。

于 2016-08-07T22:38:24.343 回答