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

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];
				
时间: 2024-10-27 11:29:18

NSString / NSData / char* 类型之间的转换的相关文章

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=

NSString NSDictionary 和char *类型之间的转换

1.字典-->字符串 NSData *jsonData = [NSJSONSerialization dataWithJSONObject:dic options:NSJSONWritingPrettyPrinted error:&parseError]; NSString *string = [[NSString alloc] initWithData:jsonData encoding:NSUTF8StringEncoding]; 2.1NSString --> char * ch

char类型的数值转换

在视频教程中,你已经认识到了数字类型之间.字符串和其他类型之间的转换.而某些时候,我们还需要将char类型转换为int类型,或者把int类型转换为char类型. 这篇文章,将介绍在代码中虽然不太常用,但也需要了解的知识. char类型的数值转换 char转为int int转为char 字符数据的运算 char转为int 一个字符 '汉' 怎么可能转换为数字呢? 实际上是可以的,在之前的补充资料中已经说到,计算机对字符的存储,是使用某种编码规则对应的数字来存储的. 在C#语言中,使用Unicode

stringstream的用法-类型之间的转换

本文来自: http://www.builder.com.cn/2003/0304/83250.shtmlhttp://www.cppblog.com/alantop/archive/2007/07/10/27823.html 使用stringstream对象简化类型转换C++标准库中的<sstream>提供了比ANSI C的<stdio.h>更高级的一些功能,即单纯性.类型安全和可扩展性.在本文中,我将展示怎样使用这些库来实现安全和自动的类型转换. 为什么要学习 如果你已习惯了&

DB2中字符、数字和日期类型之间的转换

DB2中字符.数字和日期类型之间的转换 一般我们在使用DB2或Oracle的过程中,经常会在数字<->字符<->日期三种类 型之间做转换,那么在DB2和Oracle中,他们分别是如何实现的呢?在Oracle这几个类型之间的转换是十分方便的,通过 to_char|to_date|to_number函数即可完成类型转换.本小节主要介绍DB2中的一些知识,从Oracle转过来的DBA或开发人 员,可以对比着学习. 数字型到字符型的转换 DB2中的col_a字段 字段类型 到字符类型的转换

Swift数字类型之间的转换

Swift数字类型之间的转换Swift是一种安全的语言,对于类型的检查非常严格,不同类型之间不能随便转换.一.整型之间的转换在C和Objective-C等其他语言中,整型之间有两种转换方法:从小范围数到大范围数转换是自动的:从大范围数到小范围数需要强制类型转换,有可能造成数据精度的丢失.而在Swift中这两种方法是行不通的,我们需要通过一些函数进行显式地转换,代码如下: let historyScore:UInt8 = 90 let englishScore:UInt16 = 130 let t

【opencv基础】opencv和dlib库中rectangle类型之间的转换

前言 最近使用dlib库的同时也会用到opencv,特别是由于对dlib库的画图函数不熟悉,都想着转换到opencv进行show.本文介绍一下两种开源库中rectangle类型之间的转换. 类型说明 opencv中cv::Rect    以及opencv中的rectangle函数: void cv::rectangle( InputOutputArray img, Point pt1, Point pt2, const Scalar & color, int thickness = 1, int

pytorch--基础类型之间的转换

在pytorch自己定义张量并进行计算的时候,往往会因为类型不匹配而报错,这里稍微记下pytorch之间的类型转换: 对tensor基础类型进行转换:比如说int().float().long().double().byte()等,直接.类型即可,例如float()->int:data.int() GPU与CPU类型之间的转换:GPU->CPU:data.cpu()CPU->GPU:data.cuda() Variable与Tensor:貌似Variable已经被合并到Tensor中了:

C++string,char* 字符数组,int类型之间的转换

string.int 常见类型之间相互转换 int & string 之间的转换 C++中更多的是使用流对象来实现类型转换 针对流对象 sstream实现 int,float 类型都可以实现 #include <sstream> //int convert to string void int2str(const int &int_temp,string &string_temp){ stringstream s_stream; s_stream<<int_