使用PHP curl发送UTF-16编码数据

时间:2012-04-20 10:26:04

标签: php post unicode curl utf-16

我正在为一个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而不是字符串?

感谢您的回答!

1 个答案:

答案 0 :(得分:2)

首先,您需要了解您的数据编码。那么,这是你的选择。 iconv()mb_convert_encoding()都可以很好地运作。

另外,您应该告知HTTP标头中的编码:

curl_setopt($s,CURLOPT_HTTPHEADER,array('Content-Type: text/plain; charset=UTF-16'));