この問題は、送信される指定された URL の URL パラメーターが常に中国語で文字化けし、指定された URL が UTF8 でエンコードされるという問題をよく解決します。コードは以下のように表示されます。
$url = 'http://'; //调用接口的平台服务地址 $post_string = array('a'=>'b'); $ch = curl_init(); $this_header = array( "content-type: application/x-www-form-urlencoded; charset=UTF-8" ); curl_setopt($ch,CURLOPT_HTTPHEADER,$this_header); curl_setopt($ch, CURLOPT_URL, $url); curl_setopt($ch, CURLOPT_POSTFIELDS, $post_string); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 10); curl_setopt($ch, CURLOPT_TIMEOUT, 30); $result = curl_exec($ch); if($result) echo "<script>\nalert(\"同步成功! \");\n</script>"; curl_close($ch);
概要: この種のエンコーディングの問題を解決するには、まず 2 つの場所でエンコーディングが何であるかを確認します。次に、エンコーディングが同じであれば、curl を使用する場合は直接送信できます。最後に、さらに確認して、1 つの方法が機能しない場合は、別の方法を試してください。いつでも最初から問題を検討してください。解決しました。
追記: ここでは content-type が application/x-www-form-urlencoded に設定されています。
推奨読書:
PHP CURL post エラーがフォームポスト データ ソリューションの作成に失敗しました
CURL POSTデータ量が多すぎてサーバーからの情報を受信できません
以上がPHPがcurl postに基づいてURLを送信するときに中国語が文字化けする場合の対処方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。