2017-06-27 13 views
-2

ファイルからjsonの文字列をデコードしませんでしたが、特殊文字(例: '™'、 '★' ..など)に問題があります。 PHPphp json特殊文字のデコード

からマイコード
$price_string = file_get_contents("/var/www/bot/price.json"); 
$price = json_decode($price_string, true); 
echo $price["StatTrak™ P250 | Mehndi (Field-Tested)"]; 

結果は12.01にする必要がありますが、結果はこれです:

Notice: Undefined index: StatTrak� P250 | Mehndi (Minimal Wear) in /var/www/html/menu.php on line .. 

そして、JSON文字列は、例えば次のとおりです。脇の非常に悪いアイデアから

{ 
    "★ Huntsman Knife | Boreal Forest (Well-Worn)": 62.84, 
    "StatTrak™ P250 | Mehndi (Field-Tested)": 12.01 
} 
+0

$ price配列をダンプします。あなたの注意は、HTMLで使用しているエンコーディングタイプの影響を受ける可能性があります。 – Devon

+0

いいえ、これは特別な文字なしでのみ動作します。 – Alex

答えて

0

このようなランダムなキーを持つことは、エンコードの不一致が主な原因です。チェックリスト:

  • PHPスクリプトファイルが同じエンコードあなたのJSONファイルが(最も可能性が高いUTF8)で使用されていることを確認し
  • PHPコードは、アレイにアクセスする以前に、それがない場合は、キーの文字列を処理していないことを確認、確認してくださいPHPは内部的にもUTF8を使用しています(デフォルトでは設定可能ですが、設定可能です)