好吧,我在 Visual Studio 2008 和 Windows 7 Professional 32 位上使用 C++ 中的 libcurl 来发送带有 UTF-8 字符的请求,但问题是我收到了那个编码错误。
�abe
而不是çabe
.
当我在我的本地主机服务器中进行测试时,我注意到一件事,这是我第一次在这样的 PHP 服务器中收到echo $_POST['post'];
它�abe
,但如果我对其进行编码,它就会正确:echo utf8_encode($_POST['post']);
它çabe
就是我想要的。
但问题是我无法控制接收数据的服务器,我想发送它已经用 UTF-8 编码。
我怎么能那样做?
这是我的帖子部分
struct curl_httppost *formpost=NULL;
struct curl_httppost *lastptr=NULL;
std::string post = "çabe";
url_formadd(&formpost,
&lastptr,
CURLFORM_COPYNAME, "post",
CURLFORM_COPYCONTENTS, post.c_str(),
CURLFORM_END);
@编辑
根据 DietrichEpp 的说法,要查看我是否打开了 UTF-8,我可以简单地测试示例“ç”中不同字符的长度,所以我尝试printf("%d\n", (int) strlen("ç"));
了 - 它应该打印 2 或 3 用于 UTF-8,或 1 用于别的东西。
它确实打印出 1,所以这可能是原因,我该如何解决这个问题?
我想将其设置为 UTF-8 或至少能够在 cURL 的 post 字段中使用时将其设置为 utf8。