【发布时间】:2016-03-19 14:56:46
【问题描述】:
我已经制作了一个运行良好的 RestAPI,在我的脚本(核心文件)的顶部,我声明了这一点:
header('Content-Type: application/json;charset=utf-8');
现在的问题是,当我将 json 从客户端传递到我的 API 时。这个问题通常与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"
}
我猜这个特殊字符会导致这个函数出现问题..有人有解决方案吗?
【问题讨论】:
-
您的终端是 utf-8 安全的吗?即使使用
{"test": "èè"},我也得到了正确的结果 -
@fusion3k 我在
MINGW64git 控制台和 Chrome 扩展(高级 RestFul API)上测试了这个。他们都报告了相同的结果。 -
请进聊天室
-
@fusion3k 我正在聊天中