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中的字符集? –