Php cURL发送的JSON包含utf8mb4数据错误
我有一个PHP脚本,它从DDBB中的一个表中读取,设置JSON和 通过cURL发送,但端点接收的字符(如重音)错误 敏锐的 1首先,我连接到bbdd并设置字符集: 数据库排序规则是utf8mb4\u unicode\u ci,我无法更改 2我使用以下信息构建阵列: 3结算后,从数组中创建JSON: 4最后,我发送信息: 我收到一个200代码,但API的endoint总是收到错误的输入,例如以前的值:Php cURL发送的JSON包含utf8mb4数据错误,php,json,api,curl,encode,Php,Json,Api,Curl,Encode,我有一个PHP脚本,它从DDBB中的一个表中读取,设置JSON和 通过cURL发送,但端点接收的字符(如重音)错误 敏锐的 1首先,我连接到bbdd并设置字符集: 数据库排序规则是utf8mb4\u unicode\u ci,我无法更改 2我使用以下信息构建阵列: 3结算后,从数组中创建JSON: 4最后,我发送信息: 我收到一个200代码,但API的endoint总是收到错误的输入,例如以前的值: 'Más' 它将是: 'Más' PHP脚本文件为UTF-8,数据库中
'Más'
它将是:
'Más'
PHP脚本文件为UTF-8,数据库中的信息已正确存储。有什么想法吗?JSON和CURL与此无关,您在这里显式转义字符:
$array_json['key'] = htmlentities("Más");
这让Más变成了“M&A可爱”;s.@SahilGulati怎么可能?CURLOPT_HTTPHEADER中的字符集?
curl_setopt_array($curl, array(
CURLOPT_URL => URL,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => $arr_json,
CURLOPT_HTTPHEADER => array(
"cache-control: no-cache",
"content-type: application/json",
),
));
'Más'
'Más'
$array_json['key'] = htmlentities("Más");