【问题标题】:CakePHP/PHP print extra unknown symbolCakePHP/PHP 打印额外的未知符号
【发布时间】: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,这很有可能会丢失内容的精度。

标签: php cakephp


【解决方案1】:

好的,这是邪恶的 BOM.. 问题解决了。天哪,处理其他需要 ASCII 以外的语言真是太难了。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-12-13
    • 1970-01-01
    • 1970-01-01
    • 2021-08-28
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多