我有这个非常奇怪的问题。
每当我尝试使用“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中使用它。
答案 0 :(得分:1)
在php中使用带有BOM的utf8,你只会遇到问题。 在您的情况下,您在ajax响应中实际获得的内容如下所示:
BOM"ALL IS FINE"
BOM不在引号之内,因此javascript无法对其进行解码,因为它不再是有效的json。
此外,当使用一些现代的PHP框架时,你会遇到BOM的问题。他们中的大多数都使用输出缓冲来操纵内容。在这种情况下,BOM最常见的错误是
Warning: Cannot modify header information - headers already sent