什么是在我的源文件的开头签名?

时间:2013-09-17 09:22:40

标签: encoding utf-8 character-encoding editor symbols

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

EG。代码:

<?php
echo "no errors!";
header("Location: http://stackoverflow.com");
exit;
?>
这是什么?我该如何预防?

4 个答案:

答案 0 :(得分:15)

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

答案 1 :(得分:7)

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

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

答案 2 :(得分:1)

我相信无论你是否使用BOM保存UTF-8,它仍然会发生。我不认为它会有所作为。

试一试,看看是否有帮助。

答案 3 :(得分:0)

使用vi或vim之类的工具,可以使用以下两个命令修改和保存文件,而无需使用BOM:

:setlocal nobomb

然后

:w