20

我有一个 PHP 源文件,其中自动添加了  字符!我不知道他们是从哪里来的。我没有收到任何解析错误,但它会导致文件执行过程中出现奇怪的行为。例如,标题位置功能有时不起作用!我很好奇这些符号是如何自动生成的?我正在使用 UTF-8 编码,并且符号  没有显示在 Notepad++ 或 Windows 记事本中,而是使用 Netbeans IDE。

例如。代码:

<?php
echo "no errors!";
header("Location: http://stackoverflow.com");
exit;
?>

这是什么?我该如何预防?

4

4 回答 4

27

您可以将文件保存为带有 BOM 的 UTF-8。您应该将它们保存为不带 BOM 的 UTF-8。

于 2013-09-17T09:24:05.183 回答
11

它被称为字节顺序标记,并不总是必须是“”。http://en.wikipedia.org/wiki/Byte_order_mark

某些 Windows 应用程序默认添加 BOM。在 Notepad++ 中,您可以使用编码菜单中的一些选项,例如在没有 BOM 的 UTF 中编码或在没有 BOM 的情况下转换为 UTF。

于 2013-09-17T10:06:00.890 回答
1

我相信,无论您是否将其保存为 UTF-8 有或没有 BOM,它仍然会发生。我不认为这有什么不同。

试试看,看看有没有帮助。

于 2016-05-17T18:45:13.463 回答
1

从 vi 或 vim 之类的工具,您可以使用以下两个命令修改和保存没有 BOM 的文件:

:setlocal nobomb

接着

:w
于 2019-10-02T14:28:41.517 回答