使用curl实现http传输,Url编解码问题
2012-10-07 14:03
344 查看
当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》。
解决方法:
首先,要将工程更改为对方编码格式相同的工程(如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》。
相关文章推荐
- 关于Android使用HttpURLConnection传输含有中文JSON数据的报错、乱码问题
- android客户端通过Get方式提交参数给服务器,使用URL和HttpURLConnection实现,以及乱码问题解决
- 【C/S通信交互之Http篇】Cocos2dx(Client)使用Curl与Jetty(Server)实现手机网游Http通信框架(内含解决curl.h头文件找不到问题)
- 【C/S通信交互之Http篇】Cocos2dx(Client)使用Curl与Jetty(Server)实现手机网游Http通信框架(内含解决curl.h头文件找不到问题)
- 【C/S通信交互之Http篇】Cocos2dx(Client)使用Curl与Jetty(Server)实现手机网游Http通信框架(内含解决curl.h头文件找不到问题)
- 【C/S通信交互之Http篇】使用Curl与Jetty(Server)实现手机网游Http通信框架&解决curl.h头文件找不到问题
- 【C/S通信交互之Http篇】Cocos2dx(Client)使用Curl与Jetty(Server)实现手机网游Http通信框架(内含解决curl.h头文件找不到问题)
- android客户端通过Get方式提交参数给服务器,使用URL和HttpURLConnection实现,以及乱码问题解决
- 使用HttpModule实现程序级的URL映射
- 使用python实现http及ftp服务进行数据传输的方法
- Android 使用URL,URLConnection,HttpConnection 不能通信的问题
- GitLab 使用git push 出现RPC failed; HTTP 500 curl 22 The requested URL returned error: 500
- 在ASP.NET中重写URL 方法二:使用HttpModule实现URL重写
- 使用httpclient实现http链接池与使用HttpURLConnection发送http请求的方法与性能对比
- 关于使用HttpURLConnection登录网站的问题
- C++编程笔记:使用WinHTTP实现HTTP访问(解决接收UTF8数据乱码问题)
- Android中使用HttpURLConnection实现GET POST JSON数据与下载图片
- Android 中使用HttpUrlConnection实现get请求服务器
- 使用HttpURLConnection实现文件下载
- Android中使用HttpURLConnection和HttpClient实现GET和POST请求访问网络