ASIHttpRequest中Post中文乱码解决
2013-01-31 14:43
465 查看
项目中需要与java做的网站进行连接,需要向网站post中文字符,而且采用的是GB2312编码。在使用ASIHttpRequest中ASIFormDataRequest的AddPost函数进行数据传输时老是报乱码。经过多种努力,得到最终解决方法。
首先,可以通过修改ASIFromDataRequest中
- (id)initWithURL:(NSURL *)newURL
{
self = [super
initWithURL:newURL];
[self
setPostFormat:ASIURLEncodedPostFormat];
[self
setStringEncoding:NSUTF8StringEncoding];
[self
setRequestMethod:@"POST"];
return
self;
}
把NSUTF8StringEncoding修改为
只要调用这个函数,直接就可以发送中文汉字,不需要在做其他的事情。
首先,可以通过修改ASIFromDataRequest中
- (id)initWithURL:(NSURL *)newURL
{
self = [super
initWithURL:newURL];
[self
setPostFormat:ASIURLEncodedPostFormat];
[self
setStringEncoding:NSUTF8StringEncoding];
[self
setRequestMethod:@"POST"];
return
self;
}
把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中文乱码解决
- JQuery中Ajax的Post提交中文乱码、windows.location.href 中文汉字乱码和springmvc使用原生态HttpServletRequest接收参数中文乱码解决办法
- 完美解决由NSURLConnection或者ASIHttpRequest返回的中文乱码问题。
- HttpRequest Post中文转utf-8乱码问题解决方法
- Android http post 中文乱码问题的解决
- 关于使用 ASIHTTPRequest URL中文参数乱码问题
- java 接受和发送http,post,get请求,参数中文乱码解决。
- 访问Tomcat7及以下版本时(HttpServeltRequest请求时)的中文乱码解决问题
- Http请求post方法,请求和响应中文乱码问题的一点解决方法
- 通过过滤器(Filter)解决JSP的Post和Request中文乱码问题
- HttpClient post中文乱码解决
- Delphi xe5 控件TIdhttp的用法post,get解决中文乱码问题
- ASIHTTPRequest 中url参数中文乱码
- ios开发中asihttprequest请求,汉字乱码问题的解决
- 解决MVC 中HttpStatusCodeResult((int)HttpStatusCode.BadRequest, des) 通过StatusDescription 返回中文乱码
- 解决HttpWebRequest和HtmlAgilityPack采集网页中文乱码问题
- JAVA HTTPClient PostMethod 中文乱码问题解决方法
- XMLHttpRequest对象解决中文乱码问题
- 解决XMLHttpRequest中文乱码问题
- 用ASIHttpRequest通过post请求给java服务器上传的代码(不会出现乱码)