0
我在PHP脚本,从一个表中读取DDBB,设置一个JSON和 通过卷曲发,但端点接收字符,例如重音错误错误 (acutes)。JSON通过卷曲sended有utf8mb4数据
1)首先,我连接到BBDD和设置的字符集:
$conn=mysqli_connect(DB_HOST,DB_USER,DB_PASSWORD,DB_NAME) or die("Error " . mysqli_error($con));
mysqli_set_charset($conn,"utf8mb4");
数据库归类为utf8mb4_unicode_ci
,我不能改变该。
2)I生成数组与信息:
$arr_json = array();
$array_json['key'] = htmlentities("Más");
[...]
3)一旦被解决,从阵列创建JSON:
$arr_json = json_encode($arr_json,JSON_UNESCAPED_SLASHES | JSON_UNESCAPED_UNICODE);
4)最后,我发信息:
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",
),
));
我收到代码,但API的endoint总是收到错误的输入,例如一个前值:
'Más'
这将是:
'Más'
PHP脚本文件是UTF-8,并且数据库中的信息被正确存储。有任何想法吗?
@SahilGulati怎么可能? CURLOPT_HTTPHEADER中的字符集? –