【发布时间】:2014-05-23 08:53:07
【问题描述】:
我有一个简单的函数,它打印出 1 或 0。 而在 CakePHP 模板中,直接输出结果。
我发现我得到了额外的“??”当我测试我的 PHPJS json 通信时,JS 从不解析我的结果。我想出了这种方法来测试它。
当我将结果复制(全选)到 Notepad++ 中时,我发现结果前面有 2 个问号(“??result”)而不是“result”。我的 Notepad++ 默认新文件是 ANSI 格式,在将编码更改为“UTF-8”后丢失了 2 个问号
所有这些都是突然发生的。我在上一个完成的页面上没问题,在我开始新的页面后出现这些错误。我不知道发生了什么。
环境:
记事本++
WAMP 2.5
CakePHP 2.5
编辑: 经过一番研究,问题可能出在 BOM 上。我不太确定。我在没有 BOM 的情况下将文件重新保存为 UTF-8。它似乎没有帮助。
当我的 js 无法解析从 php 返回的 JSON 时,我开始注意到这个错误。我将它们复制到一些 JSON 检查器站点。当我这样做时,前面有几个未知字符('?'等,取决于我使用的网站)。然后我做了一些简单的测试,并将问题追溯到php端。
【问题讨论】:
-
什么时候没有??在内容中,复制Notepad++中的所有代码,将文件编码改为不带BOM的UTF-8,粘贴内容并保存文件。
-
@Raptor 文件编码是 UTF-8,我明白了??当我复制网页内容时(它是 1)。它只会吸引我??如果将其复制到 ANSI 中的 Notepad++ 中。
-
@Raptor,网页内容为 1(似乎为 1)。隐藏 ??出现在 ANSI 中
-
@Raptor,如果我在 utf-8 文件中输入 1 并将其转换为 ANSI,它仍然是 1,不是 ??。这真的让我很困惑
-
没有必要将 UTF-8 文件转换为 ANSI,这很有可能会丢失内容的精度。