2017-04-11 6 views
0

との誤差を持っていると cURLのことで、それを送るが、エンドポイントがアクセント間違っ (acutesのような文字を受け取ります)。JSONは、私は、JSONをDDBB内のテーブルから読み込むPHPでスクリプト設定した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)私は情報を持つ配列構築:配列からJSONを作成し、

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

3)一度決済さ:

$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

アップ!あなたが正しい –

関連する問題