[英]json_decode can't deserialize properly
我已經使RestAPI正常運行,在腳本(核心文件)的頂部,我聲明了這一點:
header('Content-Type: application/json;charset=utf-8');
現在的問題是,當我從客戶端向我的API傳遞json時。 通常,此問題與POST
和PUT
方法有關。 僅當我通過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.