Google+ API 的结果是\ufeff
附加到每个“内容”结果的末尾(我真的不知道为什么?)
从 json 结果中删除此 unicode 字符的最佳方法是什么?它正在生产一个'?'
在我显示的一些输出中。
例子:
https://developers.google.com/+/api/latest/activities/get#try-it
输入活动 ID
z12pvrsoaxqlw5imi22sdd35jwvkglj5204
然后点击执行,结果为:
{
.....
"object": {
......
"content": "CONTENT OF GOOGLE PLUS POST HERE \ufeff",
......
显示“?”的 PHP 代码示例其中 '\ufeff' 是:
<?php
$data = json_decode($result_from_google_plus_api, true);
echo $data['object']['content'];
// outputs "CONTENT OF GOOGLE PLUS POST HERE ?"
echo trim($data['object']['content']);
// outputs "CONTENT OF GOOGLE PLUS POST HERE ?"
或者我以错误的方式处理这个问题?我应该修复“吗?”问题而不是试图删除'\ufeff'
?
在你的情况下,你可以使用这个正则表达式:
$str = preg_replace('/\x{feff}$/u', '', $str);
这样您就可以完全匹配该代码点值并将其删除。
根据我的经验,您需要删除更多的空白字符。从my经验丰富,这适用于me:
# I like to call this unicodeTrim()
$str = preg_replace(
'/
^
[\pZ\p{Cc}\x{feff}]+
|
[\pZ\p{Cc}\x{feff}]+$
/ux',
'',
$str
);
I found http://www.regular-expressions.info/unicode.html http://www.regular-expressions.info/unicode.html关于细节的一个非常好的资源:
-
\pZ
- 匹配任何类型的空白或不可见的分隔符
-
\p{Cc}
- 匹配控制字符
-
\x{feff}
- 匹配BOM
我见过正则表达式建议匹配\pC
代替\pCc
,但这很危险,因为pC
包括任何未分配字符的代码点。我已经因此删除了实际数据(某些表情符号或其他内容)。
但是,妈妈,我不能强调这一点。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)