使用curl实现http传输,Url编解码问题

45 篇文章 1 订阅
当Url包含汉字且使用curl进行http传输时,可能会出现乱码。解决方法包括:1. 将工程编码更改为与目标Url相同的格式,如在VS中设置为utf-8;2. 使用转换方法将Url编码为相应的格式;3. 使用UrlEncode函数将Url转化为十六进制,避免curl传输时的乱码问题。
摘要由CSDN通过智能技术生成

当Url字符串中有汉字时,curl会出现乱码的问题。

解决方法:

 

首先,要将工程更改为对方编码格式相同的工程(如utf-8、gb2312等)。

以VS为例:

          选中项目---文件----另存为----保存类型----utf-8项目类型

 

 

 

其次,需要将Url转化为与对方编码格式相同的格式(如utf-8、gb2312等)。

           一般情况下,VS建立的工程都是gb2312的,我的博客中提供了gb2312Toutf8和utf8Togb2312方法,见《utf-8和gb2312互转》。

         

 

最后,需要使用UrlEncode函数,将Url转化为十六进制的字符。

           由于curl发出的http请求,不认识汉字字符就会导致乱码的情况出现。此时就需要将curl转化为十六进制字符。我的博客中提供了UrlEncode方法,见《C++实现UrlEncode和UrlDecode》。

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值