cURL PHP提交中文字符 - 编码问题

时间:2018-03-13 12:48:48

标签: php curl post encoding submission

我目前正在开发一个页面,它应该通过PHP表单使用cURL远程提交数据到另一个服务器,cURL反过来应该将数据保存在文本文件中。

所有善良和花花公子,但是,表单中的字段需要填入中文输入。每当我测试它时,提交都没有问题,但是远程服务器上生成的文本文件的中文字母应该是不可读的输出。

我在文本文件中本地记录结果以及进行远程cURL提交,本地录制正常。中文字符应该按原样记录,所以我的假设是我必须更改我用于提交的cURL代码中的内容:

$data = $result;

$postdata = "data=".$data; 

$ch = curl_init(); 
curl_setopt ($ch, CURLOPT_URL, $url); 
curl_setopt ($ch, CURLOPT_SSL_VERIFYPEER, FALSE); 
curl_setopt ($ch, CURLOPT_USERAGENT, "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1.6) Gecko/20070725 Firefox/2.0.0.6"); 
curl_setopt ($ch, CURLOPT_TIMEOUT, 60); 
curl_setopt ($ch, CURLOPT_FOLLOWLOCATION, 0); 
curl_setopt ($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt ($ch, CURLOPT_REFERER, $url); 

curl_setopt ($ch, CURLOPT_POSTFIELDS, $postdata); 
curl_setopt ($ch, CURLOPT_POST, 1);
curl_setopt ($ch, CURLOPT_HTTPHEADER, array("Content-type: application/x-www-form-urlencoded; charset=UTF-8")); 
curl_exec ($ch); 

curl_close($ch);

提交的作品适用于英文字符,但不适用于中文。

接收脚本的代码是:

<?php

header("access-control-allow-origin: *");

$data = $_POST['data'];

$fp = fopen("submission.txt", "a");
fputs($fp, $data . "\n\n");
fclose($fp);

?>

我应该更改什么,是否应该在cURL代码或接收脚本中?

0 个答案:

没有答案