需要UTF-8 php文件

需要UTF-8 php文件,php,encoding,utf-8,include,require,Php,Encoding,Utf 8,Include,Require,关于用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> </

关于用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>

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


我已经搜索了几个小时的答案,并没有找到有同样问题的人。

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

添加标题后会变得更糟。尽管如此,将文件转换为不带BOM的UFT-8对我来说是可行的!谢谢。

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

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


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

关于encoding index.php和require.php,您怎么说?它们都编码为UTF-8吗?使用hexeditor向我们显示实际内容,而不是Chromes视图源的可视化或其他任何内容。标准猜测:您有一个BOM表。搜索那个关键词。是的,当我将编码从UTF-8改为UTF-8而没有BOM时,它开始工作正常。谢谢我也有同样的问题