簡體   English   中英

json_decode無法正確反序列化

[英]json_decode can't deserialize properly

我已經使RestAPI正常運行,在腳本(核心文件)的頂部,我聲明了這一點:

header('Content-Type: application/json;charset=utf-8');

現在的問題是,當我從客戶端向我的API傳遞json時。 通常,此問題與POSTPUT方法有關。 僅當我通過curl傳遞這種類型的json時,這種情況才會發生:

curl -i -d '{"test": "èè"}'

您怎么看我有一些重音字母。 因此,當我調用此函數時:

$params = json_decode(file_get_contents("php://input"), true);

$params變量返回NULL 相反,如果我的json看起來像這樣:

curl -i -d '{"test": "This is a test"}'

一切正常,並且$params變量具有以下評估:

array(1) {
  ["test"]=>
  string(14) "This is a test"
}

我猜想特殊字符會導致此功能出現問題。有人對此有解決方案嗎?

您可以使用正則表達式確定輸入行是否包含重音字符。

<?php

  preg_match("/[À-ÿ].*/", $input_line, $output_array);

  if(sizeof($output_array) > 0){
    echo "$input_line has accented characters";
  }

?>

您還可以查看URL編碼 ,因為我認為存在問題。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM