在 php 中使用 utf-8 并加载文件(require_once)会产生奇怪的字符
Posted
技术标签:
【中文标题】在 php 中使用 utf-8 并加载文件(require_once)会产生奇怪的字符【英文标题】:Using utf-8 in php and loading file (require_once) gives strange char 【发布时间】:2015-12-20 03:38:41 【问题描述】:在我使用 require_once('something.php');
的地方,我在 html 中有奇怪的字符,当我在验证器上检查页面时:
Validation Output: 1 Error
Error Line 1, Column 1: character "" not allowed in prolog
这只发生在我使用 UTF-8 时。之前我有 ANSI 文件,没问题。
是的,我正在更改元数据并将所有文件保存为 UTF-8 我可以将代码移动到部分正文,但这对我来说很奇怪。
【问题讨论】:
所以?你解决了吗? 是的,但我现在不能让你的回答有用;) 什么意思?那么原因是什么?将其添加为答案会很好,或者我可以更新我的答案。由你决定。但是我们绝对应该在这里发布它,所以它对其他人有一定的价值。 【参考方案1】:这很可能是由UTF-8 BOM (Byte Order Mark) 引起的。在某个 HEX 查看器/编辑器中打开任何文件并检查该文件中的前 3 个字节。
Windows-1250 编码中的 UTF-8 BOM 如下所示:
。或 ISO-8859-1 中的 
。那是十六进制的EF BB BF
。
只需将文件保存为 UTF-8 不带 BOM。例如Notepad++ editor 在Format
菜单下有两个选项:
【讨论】:
谢谢,我可以在没有 BOM 的情况下保存在 sharepoint Designer 2007 中吗?可能会干扰程序中的文件? 我对Sharepoint Designer一无所知,但我建议你不要使用它,因为我知道微软的软件。使用 Notepad++,它是免费的、开源的、轻量级的和良好的。它做用户想要的,而不是它认为对用户最好的。以上是关于在 php 中使用 utf-8 并加载文件(require_once)会产生奇怪的字符的主要内容,如果未能解决你的问题,请参考以下文章
安全地将私有 PHP 文件存储在公共目录之上并使用 require_once 加载它们吗?