ASIHttpRequest中Post中文乱码解决
来源:互联网 发布:淘宝网商女鞋 编辑:程序博客网 时间:2024/06/06 19:23
项目中需要与java做的网站进行连接,需要向网站post中文字符,而且采用的是GB2312编码。在使用ASIHttpRequest中ASIFormDataRequest的AddPost函数进行数据传输时老是报乱码。经过多种努力,得到最终解决方法。
首先,可以通过修改ASIFromDataRequest中
- (id)initWithURL:(NSURL *)newURL
{
self = [superinitWithURL:newURL];
[selfsetPostFormat:ASIURLEncodedPostFormat];
[selfsetStringEncoding:NSUTF8StringEncoding];
[selfsetRequestMethod:@"POST"];
returnself;
}
把NSUTF8StringEncoding修改为
NSStringEncoding enc = CFStringConvertEncodingToNSStringEncoding(kCFStringEncodingGB_18030_2000);
这是GB2312编码。
然后在post时,也把要post的数据通过
NSStringEncoding enc = CFStringConvertEncodingToNSStringEncoding(kCFStringEncodingGB_18030_2000);
NSString *str = @"汉字";NSData *data = [str dataUsingEncoding:enc];
NSString *retStr = [[NSString alloc] initWithData:data encoding:enc];
进行GB2312转码,然后发送就可以了。
但参考过http://dev.ppios.com/2012/09/%25E4%25BD%25BF%25E7%2594%25A8-asihttprequest-%25E6%25A8%25A1%25E6%258B%259F%25E7%2599%25BB%25E9%2599%2586%25E6%25AD%25A3%25E6%2596%25B9%25E6%2595%2599%25E5%258A%25A1%25E7%25B3%25BB%25E7%25BB%259F%25E7%259A%2584%25E5%2587%25A0%25E7%2582%25B9%25E5%25BF%2583%25E5%25BE%2597/
感觉自己的方法太笨了。其实ASIHttpRequest中已经提供这样的函数了。
即:
[request setStringEncoding:enc];
只要调用这个函数,直接就可以发送中文汉字,不需要在做其他的事情。
- ASIHttpRequest中Post中文乱码解决
- ASIHttpRequest中Post中文乱码解决
- ASIHttpRequest中Post中文乱码解决
- httpclient3解决post中文乱码
- post/get解决中文乱码
- 解决springMVC POST 中文乱码
- springmvc解决post中文乱码
- ASIHTTPRequest 中url参数中文乱码
- 解决Servlet中get或post中文乱码问题
- 解决Get和Post请求中中文乱码问题
- 解决Get和post请求中中文乱码问题
- servlet中post与get请求中文乱码解决
- 解决Spring Web MVC中POST中文乱码问题
- servlet中get和post的中文乱码解决
- 解决Sping Mvc中post、get请求中文乱码问题
- springmvc中解决post乱码
- 解决svn post-commit 中文乱码问题
- js 解决ajax post 中文乱码问题
- Android消息处理机制
- oracle下定时删除归档脚本
- openfire插件编译记录
- Ext组件跑到了左上角
- ARM体系结构
- ASIHttpRequest中Post中文乱码解决
- TinyXml 解析 XML
- Java学习进度
- VS2008+MVC的用法总结
- 解读php框架codeigniter是如何实现mvc模式以及单一入口
- php 里的使用mail()发送邮件详解
- flask
- 文本文件读写(1.5.1 文件输入和输出)?
- Jquery 事件处理 1