我在一个斗争与Laravel JSON响应工作。
我想做的是创建一个CURL请求Laravel控制器。
这就是CURL代码:
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'http://dev.laravel/');
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $fields);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
$output = curl_exec($ch);
curl_close($ch);
echo $output;
...这是控制器代码:
$data = array(
'code' => ($this->code ? $this->code : 0),
'message' => 'àèìòù',
'data' => ''
);
return response()->json($data);
问题在于消息的重音,但是如果我只返回一个字符串并使用utf8_decode($output)
,重音也能正常工作,下面是一个例子:
// curl
echo utf8_decode($output);
// laravel controller
return 'àèìòù';
[更新]
另一个行不通的例子是:
$response = array(
'code' => 200,
'message' => 'àèìòù',
'data' => array()
);
return response()->json($response, 200, [], JSON_UNESCAPED_UNICODE);
{"code":200,"message":"à èìòù","data":[]} // result
4条答案
按热度按时间n53p2ov01#
在后台,Laravel使用的是
json_encode
。请尝试使用JSON_UNESCAPED_UNICODE
-选项:JSON_未转义_统一代码
按字面编码多字节Unicode字符(默认情况下转义为\uXXXX)。PHP 5.4.0起可用。
3lxsmp7m2#
我以前遇到过这个问题,但当我使用json_encode()函数时,它工作正常:
fae0ux8s3#
我是这么做的:
无论如何,在客户端,我必须用途:
up9lanfz4#
PHP 8+允许命名参数