BOM 随机出现在 JSON 回复中

2023-12-10

我正在使用 JSON 和 cURL 实现两个服务器之间的通信。问题是,有时 JSON 回复中的开括号之前会附加 BOM(字节顺序标记)。我已经设法修剪它并成功解析 JSON 字符串,但考虑到 JSON 是由我自己的代码生成的,我不知道该 BOM 从哪里来。

我使用 json_encode() 生成回复,并使用 header() + echo 打印它,据我所知,json_decode() 不会生成任何 BOM。相应的 .php 文件以 UTF-8 编码,并且其中没有 BOM(根据 Notepad++)。除了 cURL 之外,我还尝试使用 Chrome 和 python (urllib2) 执行请求。虽然 Chrome 根本不注册任何 BOM,但 Python 经常因此无法解析传入的 JSON。

那么,使用 echo 是否存在一些细微差别,以某种方式产生这样的结果?我应该从哪里开始寻找问题的根源以及解决方案是什么?


我有同样的问题。我从 PHP 输出 json,页面顶部还包含其他类文件。这些文件没有输出任何内容,但是当它们被包含时,我得到的字节顺序标记与包含的文件一样多。因此,如果我有 4 个包含项,那么我的 json 开头也有 4 个 BOM。

我确保包含内容不会打印任何数据,并且 PHP 标记之外没有杂散的回车符。我尝试了“application-json”等标头,但没有任何效果。

到底,我只是在记事本++中打开每个PHP文件,转到“编码”并将其从UTF-8更改为ANSI,然后保存。这就是让它工作并返回有效 json 所需的全部工作。我根本没有对 PHP 进行任何代码更改。

这个解决方案感觉仍然不太理想。由于我们没有从这些包含的文件中输出任何内容,因此不应受到任何影响。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

BOM 随机出现在 JSON 回复中 的相关文章

随机推荐

  • 如何在 Xcode 7.2 上使用 Storyboard 布置比屏幕高的屏幕内容? [复制]

    这个问题在这里已经有答案了 我使用 swift 2 0 进行编程 并且对在视图控制器上添加更多对象感到困惑 例如 我的视图控制器上需要 14 个具有所需约束的按钮 但我只能在故事板上的视图控制器中一一添加 7 个按钮 因为视图控制器上没有更
  • Android中实现类似Spring的包扫描

    我正在尝试实现一个包扫描功能 类似于 Spring 的component scan 对于我正在开发的Android框架 基本上 我希望能够指定一个基础包 例如com foo bar并检索所有Class具有特定注释的实例 我不想在我的框架中注
  • 当 woocommerce_order_status_changed 挂钩触发时,Woocommerce admin_notices 不起作用

    我是 WordPress 开发新手 目前遇到了死胡同 我希望在订单状态更改后在 WooCommerce 订单中显示管理员通知 使用以下代码 不会出现该通知
  • WebM 中的 PCM 支持以及 Chrome 的 WebM 实现

    WebM 是否支持 PCM 音频编解码器 我没想到 但我在网上看到WebM 文档页面有支持BitDepth带有以下注释的字段 BitDepth 每个样本的位数 主要用于 PCM 如果 WebM 确实支持 PCM 那么 Chrome 的实现吗
  • 如何使用 PHP/MySQL 限制用户一个月内只能上传三张图片

    我正在研究 PHP 我的问题是如何限制用户一个月只能上传三张图片 我的 Mysql 数据库表 CREATE TABLE images id int 40 NOT NULL user name varchar 40 NOT NULL mobi
  • 具有单独切换的多个显示/隐藏 div

    我一直在尝试创建多个应在页面加载时隐藏的 div 如果单击相应的按钮 则应显示该 div 如果再次单击同一按钮 则应隐藏该 div 此外 如果正在显示其中一个 div 并且单击另一个按钮 则应该显示与该按钮对应的 div 如果再次单击同一按
  • 似乎在 中不起作用,仅提交最后一个条目

    我有一个
  • 使用 SQL 中修改的关系复制同一个表中的数据

    我们需要将数据从一家公司复制到另一家公司 为此我们需要将一个表中存在的所有数据复制到同一个表中 但具有不同的公司 ID 表 1 员工 FName Id Department CatId CompanyId Pratik 1 1 4 1 Pr
  • 仅删除某些请求的安全性 wso2 api 管理器

    是否可以使用 WSO2 API 管理器版本 3 删除我的 api 列表中某些特定请求的安全性 例如 我有以下请求 customer post products get customer address get 就我而言 我不需要安全 pro
  • 如何使用 Stripes Framework 在 Web 浏览器中显示 JFreeChart

    情况是这样的 我的 metrics jsp 页面提交了创建图表所需的几个变量 ProjectActionBean java 调用一些其他创建 JFreeChart 的 java 类 我可以在弹出窗口中显示图表 但我希望它显示在原始浏览器窗口
  • 如何在不设置顶部和底部的情况下设置左右CSS属性

    有什么办法可以只设置左右 边距 填充 边框宽度等 为相同的值根本不需要设置顶部和底部 用一种表达方式 而不是 my class name margin left 2px margin right 2px 对于属性 如果我希望左侧和右侧具有相
  • 在 Linux CentOS 6.3 上安装 R 时出现问题

    在 Linux CentOS 6 3 上安装 R 时 我得到以下信息 Error Package R core 3 0 1 2 el6 x86 64 epel Requires libjpeg so 62 LIBJPEG 6 2 64bit
  • 如何在 Vaadin 10 组合框中添加语言标志

    如何在 Vaadin 10 Como 框中添加语言标志 您可以使用comboBox setRenderer 构建您自己的将要使用的布局 comboBox setRenderer new ComponentRenderer
  • 具有相同簇大小的 K 均值算法变体

    我正在寻找最快的算法 用于按距离将地图上的点分组为大小相等的组 这k 均值聚类算法看起来简单且有前途 但不能产生同等规模的群体 该算法是否有一种变体 或者是否有一种不同的算法可以允许所有集群的成员数量相等 也可以看看 将 n 个点分组到 k
  • MongoDB 无法确定表达式错误的序列化信息

    我的数据具有以下结构 public enum ParamType Integer 1 String 2 Boolean 3 Double 4 public class Gateway public int id get set public
  • 清除Android的本地通知cordova插件

    I use 适用于 Android 的 Phonegap 本地通知插件显示特定日期的通知 我使用 Cordova 2 2 我使用 cordova 的升级教程修改插件 显示通知 但当我单击它时 应用程序未打开且通知未清除 我怎样才能解决这个问
  • 动态改变自定义seekBar的LinearGradient颜色比率

    我创建了一个带有自定义的搜索栏LinearGradient可绘制的 但是 我希望能够更改每种颜色的渐变比例 这里我使用 3 种颜色 如果满足以下条件 它们会均匀分布positions is null 事实上 我想要的是为每种颜色提供宽度或比
  • 如何从 weblogic 12.2.1 禁用 Jersey

    Weblogic 12 2 1内部有Jersey 2 21 1作为JAX RS 2 0的实现 但我们想使用Jersey 2 5 1或最新版本的Jersey 解决冲突的一般方法是在配置文件中定义类以从应用程序加载类 但是当你升级weblogi
  • 类模板的别名

    考虑一个别名模板 例如A在下面的代码中 现在让B是以下的别名模板A 在下面的代码中 这些类模板用作结构的模板参数C它仅专门用于一种类型名称 A clang std c 11存在于error implicit instantiation of
  • BOM 随机出现在 JSON 回复中

    我正在使用 JSON 和 cURL 实现两个服务器之间的通信 问题是 有时 JSON 回复中的开括号之前会附加 BOM 字节顺序标记 我已经设法修剪它并成功解析 JSON 字符串 但考虑到 JSON 是由我自己的代码生成的 我不知道该 BO