php - 从 json 字符串中删除隐藏的中点字符
问题描述
发送一个 API 请求我得到一个 json 字符串作为答案,它似乎包含一个隐藏字符,一个中点 [·]。在我的 ATOM 编辑器中,该字符不可见,但尝试在中点之后删除该字符会导致没有可见动作,这表明它随后删除了中点。
将 json 字符串转换为 PHP 数组的问题导致数组的值为 NULL。
问题:
删除隐藏字符最直接的方法是什么?我应该搜索该字符并简单地从字符串中删除该字符吗?
我知道最好的办法是找到中点到达那里的根本原因,但我找不到根本原因。
调查和结果:
比较https://www.diffchecker.com/中的 [$body1] 和 [body2] ,它显示:
[$body1] ·'{"columns":"test"}'
[$body1] '{"columns":"test"}'
这个测试表明我确实有一个隐藏的角色。它可能无法在您的环境中进行测试,因为隐藏字符可能已通过复制/粘贴删除。
$body1 = '{"columns":"test"}'; // Hidden character.
$body2 = '{"columns":"test"}'; // Removed hidden character.
$body3 = '{"columns":"test"}'; // Same as body2.
var_dump(json_decode($body2, true));
if($body1 == $body2) {
echo 'Content the same';
} else
echo 'Content differs';
结果:
Content differs
检查正文字符串的字符串长度。
echo strlen($body1) . "\n";
echo strlen($body2) . "\n";
echo strlen($body3) . "\n";
结果:
21
18
18
解决方案
推荐阅读
- kubernetes - 无法执行 Airflow KubernetesExecutor
- r - 如何从数据框中删除空白单元格?
- java - jdk 未找到 aws sam 应用程序 Visual Studio 代码
- python - 测试一个函数,它的一些代码依赖于在本地测试期间不可用的服务?
- c# - 包含函数返回错误,指出指定的包含路径无效
- c++ - 如何从 const 引用或通过转发模板临时构造对象
- swift - 如何修复自定义 UITableViewCell 动态高度?
- python - 为什么无法设置类的某些属性?
- php - PHP数组移位/拆分但第一个移位/拆分不起作用
- django - 在没有外键的情况下连接两个查询集的有效方法