Php cURL发送的JSON包含utf8mb4数据错误

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,数据库中

我有一个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,数据库中的信息已正确存储。有什么想法吗?

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");