0

我有这个非常奇怪的问题。

每当我尝试使用“UTF-8”包含一个文件时,我都会在运行它时遇到错误。即使脚本完全运行并返回正确的文本。

(我愿意ini_set('default_charset', 'utf-8');

看这个例子。。代码是这样的:

当我有这样的代码时:

include_once $fn;
echo json_encode("ALL IS FINE");
die();

ajax 响应如何解释它:(作为错误,但响应文本仍然相同,因此它实际上始终是正确的文本并且脚本完全运行..) 在此处输入图像描述

当我有这样的代码时:

echo json_encode("ALL IS FINE");
die();
include_once $fn;

ajax 响应如何解释它: 在此处输入图像描述

如果我在 Notepad++ 中使用“ANSI as UTF-8”,我可以摆脱错误,这基本上意味着没有 BOM 的 UTF-8。但我想把它放在 utf8 中。

4

1 回答 1

1

在 php 中使用带有 BOM 的 utf8 你只会遇到问题。在您的情况下,您在 ajax 响应中实际得到的内容如下所示:

BOM"ALL IS FINE"

BOM 不在引号中,因此 javascript 无法对其进行解码,因为它不再是有效的 json。

此外,在使用一些现代 php 框架时,您会遇到 BOM 问题。他们中的大多数都在使用输出缓冲来操作内容。在这种情况下,BOM 最常见的错误是

Warning: Cannot modify header information - headers already sent
于 2013-05-22T20:33:31.957 回答