2017-04-11 1 views
0

나는했습니다 utf8mb4 데이터에 오류가 (acutes). 데이터베이스 데이터 정렬 utf8mb4_unicode_ci입니다JSON은 DDBB의 테이블에서 읽어 PHP의 스크립트가하는 JSON 설정하고 컬로 보내하지만, 엔드 포인트가 잘못 악센트와 같은 문자를받을

$conn=mysqli_connect(DB_HOST,DB_USER,DB_PASSWORD,DB_NAME) or die("Error " . mysqli_error($con)); 
mysqli_set_charset($conn,"utf8mb4"); 

, 내가 있음을 변경할 수 없습니다 :

1) 첫째로, 나는 bbdd에 연결하여 문자 집합을 설정합니다.

2) 나는 정보와 배열을 구축 일단

$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이며 데이터베이스의 정보는 올바르게 저장됩니다. 어떤 아이디어? "Más"집니다

$array_json['key'] = htmlentities("Más"); 

'Más'로 :

+0

@SahilGulati 어떻게 될 수 있을까요? CURLOPT_HTTPHEADER의 문자 세트? –

답변

1

JSON과 CURL, 당신은 여기에 명시 적으로 문자를 탈출하고이 함께 할 수 없다.

+0

Ups! 네가 옳아 –

관련 문제