美文网首页
iOS开发中NSString与NSData相互转码?网址编码?

iOS开发中NSString与NSData相互转码?网址编码?

作者: 随心吧 | 来源:发表于2017-03-09 16:35 被阅读459次
『导言』

iOS开发中,对于请求网络数据时候,经常需要处理编码转码问题?经常出现NSUTF8StringEncoding字样,在NSData和NSString的转换中如何用?


  • NSUTF8StringEncoding编码解码?
  • 编码: 使汉字** →** 含%的字符串
NSString *nameStr = [[NSString alloc]init];
nameStr = [nameStr stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];
  • ** 解码**:使汉字 %的字符串
NSString *transString = [NSString stringWithString:[string stringByReplacingPercentEscapesUsingEncoding:NSUTF8StringEncoding]];
  • NSSDataNSString的相互转换?
  • str转datainitWithData: encoding:
  • 用法
NSString *str = @"username=zwj&pwd=123&type=JSON";
NSData *data = [str dataUsingEncoding:NSUTF8StringEncoding];
  • data转strdataUsingEncoding:
    • 用法
NSString *str2 = [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding];
  • 网址含汉字如何转码?str->str
  • str转str: stringByAddingPercentEscapesUsingEncoding:
  • 用法:
NSString *str = @"http://120.25.226.186:32812/login2?username=文娟&pwd=520it&type=JSON";
str = [str stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];
  • POSTGET请求,何时需要转码?
  • GET请求:
*  若url的`路径参数`含有`汉字`,需要`转码`;
 * 例1:参数中含有`汉字`为`小码哥`
   NSString *str = @"http://120.25.226.186:32812/login2?username=小码哥&pwd=520it&type=JSON";
    str = [str stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];
  • POST请求:
    • 若url的域名含有汉字,进行转码
    • HTTPBody 请求体:已经进行了编码,所以不需要转码。
      例2:
    request.HTTPBody = [@"username=小码哥&pwd=520it&type=JSON" dataUsingEncoding:NSUTF8StringEncoding];
  • 总结:
  • strdata
initWithData:  encoding:
  • datastr
dataUsingEncoding:
 > * `str`转`str`:
stringByAddingPercentEscapesUsingEncoding:
图.开心一刻
  • 链接

<1>.NSSData和NSString的相互转换
<2>.iOS开发中,如何转码字符串NSString或者网址str?

相关文章

网友评论

      本文标题:iOS开发中NSString与NSData相互转码?网址编码?

      本文链接:https://www.haomeiwen.com/subject/leowgttx.html