ホームページ > バックエンド開発 > PHPチュートリアル > json_decode を uft-8 文字列に変換すると結果が null になる理由を教えてください。

json_decode を uft-8 文字列に変換すると結果が null になる理由を教えてください。

WBOY
リリース: 2016-06-13 11:55:56
オリジナル
1049 人が閲覧しました

json_decode を uft-8 文字列に変換すると、結果が null になる理由を教えてください。


<html> <html><head><meta http-equiv="Content-Type" content="text/html;charset=utf-8"/></head><br /><?php<br /><br />$str=isset($_POST["text"]) ? filter_input(INPUT_POST,"text",FILTER_SANITIZE_SPECIAL_CHARS) : '';<br />print "$str=".$str."\n";<br />if (strlen($str)>0){<br />//$str=mb_convert_encoding($str,"GBK","UTF-8");<br />$jo=json_decode($str);  //中文的,转出来是null<br />print_r("\n++++\n".$jo."\n====\n"); <br />$msg_id=$jo->msg_id; //这里就会报错了。<br />}<br /><br /><br />echo ' <form method="post" action="t1.php">';<br />echo ' <textarea name="text" rows="2" cols="80">{"name":"test","id":0,"txt":"中文"}</textarea><br>';<br />echo ' <input type="submit"></form>';<br /><br /><br />?>
ログイン後にコピー

-----解決策---- ----- -----------
json 形式が間違っていませんか? 変換したい json 文字列をエコーし​​て、標準の json 形式に準拠しているかどうかを確認できます。
---- --解決策-----
次の ------解決策---------
print_r("n n".$jo." n ====n");
ここには何がありますか?

-----解決策---------
echo $_POST["text" ] ;
見てください、ほとんどの引用符はエスケープされています

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート