ホームページ > バックエンド開発 > PHPチュートリアル > json_decode 関連の問題が奇妙なのですが、なぜデコードできないのでしょうか?

json_decode 関連の問題が奇妙なのですが、なぜデコードできないのでしょうか?

WBOY
リリース: 2016-06-13 13:26:04
オリジナル
937 人が閲覧しました

奇妙な json_decode 問題、なぜデコードできないのですか?

PHP コード
<!--

Code highlighting produced by Actipro CodeHighlighter (freeware)
http://www.CodeHighlighter.com/

-->
<?php
    $rm = '5e
?{"return":"error","errorcode":400,"errorinfo":"\u7528\u6237\u540d\u5df2\u88ab\u6ce8\u518c"}
0'; //注意这里面有2个换行符,在5e后面和0前面
    $a_rm = explode("\r\n", $rm);
    $a_rm1 = $a_rm[1];
    echo $a_rm1;
    echo "<pre class="brush:php;toolbar:false">";var_dump(json_decode($a_rm1, true));
?>
ログイン後にコピー


結果は次のとおりです:
PHP コード
<!--

Code highlighting produced by Actipro CodeHighlighter (freeware)
http://www.CodeHighlighter.com/

-->{"return":"error","errorcode":400,"errorinfo":"\u7528\u6237\u540d\u5df2\u88ab\u6ce8\u518c"}

NULL

ログイン後にコピー


これは機能しません、次の方法でできます。なぜ?

PHP コード
<!--

Code highlighting produced by Actipro CodeHighlighter (freeware)
http://www.CodeHighlighter.com/

-->
$aa = '{"return":"error","errorcode":400,"errorinfo":"\u7528\u6237\u540d\u5df2\u88ab\u6ce8\u518c"}';
    var_dump(json_decode($aa))

ログイン後にコピー


暗黙的なシンボルはありますか?



-----解決策---------

echo $a_rm1; 元のファイルを表示すると、次のことがわかります。
------解決策------------------
エンコードをutf-8に変更するだけです。 BOM ヘッダーを削除することに注意してください。
関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート