NSData NSURL 字符串网络请求的时候 互相转换_如何将 网络url 转换成nsdata-程序员宅基地

技术标签: 苹果  

NSString / NSData / char* 类型之间的转换

1. NSString转化为UNICODE String:
(NSString*)fname = @“Test”;
char fnameStr[10];
memcpy(fnameStr, [fname cStringUsingEncoding:NSUnicodeStringEncoding], 2*([fname length]));
与strcpy相比,memcpy并不是遇到'\0'就结束,而是一定会拷贝完n个字节

2. NSString 转化为 char *
NSString * str= @“Test”;
const char * a =[str UTF8String];

3.char * 转化为 NSString
NSString *str=[NSString stringWithCString  encoding:NSUTF8StringEncoding];


4. char * 转化 NSData
 方法一:
   char * a = (char*)malloc(sizeof(byte)*16);
   NSData *data = [NSData dataWithBytes: a   length:strlen(a)];
 方法二:
    转换为NSString: - (id)initWithUTF8String:(const char *)bytes
    然后用NSString的 - (NSData *)dataUsingEncoding:(NSStringEncoding)encoding

5. NSData 转化 char *
  NSData data ;
  char* a=[data bytes];

6. NSData 转化 NSString;
NSData* data;
NSString* aStr= [NSString alloc] initWithData:data   encoding:NSASCIIStringEncoding];

7. NSString 转化 NSData对象

NSData* xmlData = [@"testdata" dataUsingEncoding:NSUTF8StringEncoding];

http://blog.sina.com.cn/s/articlelist_1256141290_14_1.html

NSString 转化 NSURL  
 //NSURL *url = [NSURL URLWithString:[str   stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding ]]; 
NSString *urlString=[@"http://www.google.com/search?client=safari&rls=en&q=搜索&ie=UTF-8&oe=UTF-8" stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];
NSURL 转化 NSString
NSURL *url=[NSURL URLWithString:urlString];
NSString *s=[[url absoluteString] stringByReplacingPercentEscapesUsingEncoding:NSUTF8StringEncoding];


NSArray *arr = [urlStr componentsSeparatedByString:@"&"]; 
NSURL *url = [NSURL URLWithString:[[arr objectAtIndex:0] stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding ]]; 
NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:url]; 
[request setHTTPMethod:@"POST"]; 

NSMutableArray *_array = [[NSMutableArray alloc] initWithCapacity:0]; 
for (int i = 1; i < [arr count]; ++i ){ 
NSString *str = [arr objectAtIndex:i]; 
[_array addObject:str]; 

[_array componentsJoinedByString:@"&"]; 
NSData *data = [[_array componentsJoinedByString:@"&"] dataUsingEncoding: NSASCIIStringEncoding]; 
[request setHTTPBody:data];

 // 发送请求并获得服务器反馈的数据
    NSData *urldata = [AESEnCDeCViewController Get:url];
    
    // 第一种 转换NSData数据到char*字符串
    char * test = (char*)[urldata bytes];
    std::string old = deaes(test);
    
    // 第二种 转换NSData到UTF8编码的NSString中再转换为char*字符串
//    NSString *desStr = [[NSString alloc] initWithData:urldata encoding:NSUTF8StringEncoding];
//    const char *desresult = [desStr UTF8String];
//    std::string old = deaes(desresult);
    
    // 解密字字符串到明文
    NSString *oldstr = [[NSString alloc] initWithCString:old.c_str()];


很多时候软件读取的中文网页编码集是gb2312,所以显示出来的是乱码。这时需要将NSString文字编码转换

1 NSURL *url = [NSURL URLWithString:urlStr];
2 NSData *data = [NSData dataWithContentsOfURL:url];    
3 NSStringEncoding enc = CFStringConvertEncodingToNSStringEncoding(kCFStringEncodingGB_18030_2000);    
4 NSString *retStr = [[NSString alloc] initWithData:data encoding:enc];

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/ios_xumin/article/details/45558651

智能推荐

(一〇七)第八章复习题_将box结构的引用-程序员宅基地

文章浏览阅读517次。1.哪种函数适合定义为内联函数?答:短小的,执行速度快的,占用内存小的适合。还有非递归的 2.假如song()函数的原型如下:void song(const char* name, int times);a.如何修改原型,使times的默认值为1?b.函数定义需要做哪些修改?c.能否为name提供默认值“O.My Papa”? 答:a。 修改成:void son_将box结构的引用

矩阵运算-克罗内克积⨂ Hadamard乘积 2022年3月24日_克罗克内积求旋转矩阵-程序员宅基地

文章浏览阅读641次。目录一 ⨂-克罗内克积1. ⨂:克罗内克积,是张量积的一种特殊形式。2. 举例3. 应用-CNN卷积运算一 ⨂-克罗内克积1. ⨂:克罗内克积,是张量积的一种特殊形式。2. 举例3. 应用-CNN卷积运算X为输入,W为卷积核,Y为输出:..._克罗克内积求旋转矩阵

python 等值面 插值_python图像插值-程序员宅基地

文章浏览阅读438次。最近邻:选择离它所映射到的位置最近的输入像素的灰度值为插值结果。最临近插值图像的缩放很好理解,就是图像的放大和缩小。传统的绘画工具中,有一种叫做“放大尺”的绘画工具,画家常用它来放大图画。当然,在计算机上,我们不再需要用 放大尺去放大或缩小图像了,把这个工作交给程序来完成就可以了。下面就来讲讲计算机怎么来放大缩小图象;在本文中,我们所说的图像都是指点阵图,也就是用 一个像素矩阵来描述图像的方法,对..._height,width,channels = img.shape

Spring Cloud项目部署(三)使用maven插件上传docker镜像的相关配置-程序员宅基地

文章浏览阅读109次。1.本地window系统安装maven通过cmd中的mvn命令将项目镜像上传至服务器的docker中。(参考网上的window下的maven安装和配置)2.修改本机的系统环境参数。测试服务器地址192.168.0.1703.各项目的pom文件修改添加以下<!-- tag::plugin[] --><plugin>..._spring cloud maven docker

Python(九)编程中的if __name__ == main如何简单理解-程序员宅基地

文章浏览阅读619次。一、 在网上搜了半天也没搞懂有些回答点赞收藏的人很多,但抱歉,我还是没看明白终于搜到一个看一遍就理解的文章,简单明了。以下开始都是搬运过来的:在大多数编排得好一点的脚本或者程序里面都有这段if name == ‘main’: ,虽然一直知道他的作用,但是一直比较模糊,收集资料详细理解之后与打架分享。1、这段代码的功能一个python的文件有两种使用的方法,第一是直接作为脚本执行,第二是import到其他的python脚本中被调用(模块重用)执行。因此if name == ‘main’: 的作用就

Faster R-CNN GPU训练运行说明-程序员宅基地

文章浏览阅读1.5k次。本篇文章主要是记录本人学习Faster R-CNN的有关内容,这次是记录使用GPU运行模型训练的步骤:1、首先下载模型的源代码(本人使用的是tensorflow版的代码):https://github.com/endernewton/tf-faster-rcnn2、配置环境训练模型需要提前安装好相关的依赖包:Cython 0.28.2easydict ...

随便推点

资源分享(nlp、kaggle、pytorch、datawhale)_kaggle pytorch-程序员宅基地

文章浏览阅读1.6k次,点赞6次,收藏17次。收藏了各种文章、github资源、赛事top方案等等_kaggle pytorch

计网第五章作业_用tcp传输256字节数据。设置接收窗口为100字节,而tcp报文段每次也是传送100字_寂静花开的博客-程序员宅基地

文章浏览阅读6.4k次,点赞13次,收藏45次。一.单选题二.简答题三.计算题一.单选题1、TCP的协议数据单元被称为( )。A、比特B、帧C、分段D、字符正确答案: C2、下列说法,错误的是( )。A、TCP协议可以提供可靠的数据流传输服务B、TCP协议可以提供面向连接的数据流传输服务C、TCP协议可以提供全双工的数据流传输服务D、TCP协议可以提供面向非连接的数据流传输服务正确答案: D3、TCP的四次挥手用于( )。A、运输层连接的释放B、运输层连接的建立C、运输层的流量控制D、运输层的拥塞控制正确答案:._用tcp传输256字节数据。设置接收窗口为100字节,而tcp报文段每次也是传送100字

verilog语言中的综合与不可综合_assign可综合吗-程序员宅基地

文章浏览阅读1.5k次,点赞5次,收藏16次。(1)所有综合工具都支持的结构:always,assign,begin,end,case,wire,tri,aupply0,supply1,reg,integer,default,for,function,and,nand,or,nor,xor,xnor,buf,not,bufif0,bufif1,notif0,notif1,if,inout,input,instantitation,module,negedge,posedge,operators,output,parameter。(2)所有综合工具都不_assign可综合吗

NLP之文本分词综述_江小皮不皮的博客-程序员宅基地

文章浏览阅读1.6k次。分词是自然语言处理中的一个关键任务,目的是将文本分解为语言单元(如单词、词组等),以便进一步处理。规则分词:是基于词典和语法规则的分词方法,通过在词典中查找词语,再通过语法规则对不在词典中的词语进行处理。规则分词算法具有语言知识丰富、实现简单等特点,但不能很好地处理一些未登录词(OOV)和新词。统计分词:是基于统计模型的分词方法,通过学习大量语料来建立分词模型,从而解决规则分词的一些不足。统计分词算法通常使用HMM、CRF等算法,能够更好地处理OOV和新词,但语料要求比较高,而且实现较为复杂。_文本分词

已解决 。Windows下,使用Conda的虚拟环境为你复现论文或者管理工程环境提供便捷-程序员宅基地

文章浏览阅读279次。鉴于我们在进行工程项目编写和测试时,需要使用到不同的环境,这里,我们可以使用conda的虚拟环境,以便分离出具体项目的环境。1.查看我们当前conda里有的环境conda info --envs可以看到,我们目前只有一个base的基础环境。我们可以查看一下该环境下的包列表。conda list可以看到,在当前base环境下运行的conda list 命令,显示出了环境下持有的python第三方库。2. 创建虚拟环境。conda create -n [env_..

ajax邮箱、用户名唯一性验证-程序员宅基地

文章浏览阅读2.7k次。"text/javascript"> $(function () { $("#txtEmail").blur(function () { $.ajax({ type: "post", url: "reg.ashx?email=" + $.trim