我正在为一个Web服务构建一个php客户端,该服务要求将发布的数据编码为UTF-16。如何配置curl以UTF-16编码我的数据,以及解码UTF-16中的答案?
一些示例代码:
$s = curl_init($url);
curl_setopt($s,CURLOPT_POST,1);
curl_setopt($s,CURLOPT_RETURNTRANSFER, 1 );
curl_setopt($s,CURLOPT_POSTFIELDS,$data);
curl_setopt($s,CURLOPT_TIMEOUT, 5);
curl_setopt($s,CURLOPT_HTTPHEADER,array('Content-Type: text/plain'));
$result = curl_exec($s);
curl_close($s);
添加Accept-Encoding标头似乎不起作用。是否可以先将数据字符串编码为UTF-16,然后将字节数组传递给curl而不是字符串?
感谢您的回答!
答案 0 :(得分:2)
首先,您需要了解您的数据编码。那么,这是你的选择。 iconv()和mb_convert_encoding()都可以很好地运作。
另外,您应该告知HTTP标头中的编码:
curl_setopt($s,CURLOPT_HTTPHEADER,array('Content-Type: text/plain; charset=UTF-16'));