从json字符串中删除隐藏的中点字符

时间:2019-09-01 12:38:41

标签: php json character hidden jsondecoder

发送一个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

0 个答案:

没有答案