iOS开发时,经常需要遇到NSData和NSString的互转,这个并不难,有现成的方法,NSString转NSData就是
NSString* str = @"teststring";
NSData* data = [str dataUsingEncoding:NSUTF8StringEncoding];
NSData转成NSString时,需要区别对待一下,如果这个data数据不是以\0结尾的,就是
NSData *data = ……;
NSString *string = [[NSString alloc] initWithData:data encoding:NSASCIIStringEncoding];
如果data是以\0结尾的,例如是从c字符串转换过来的,那就要换下面这种方法了,这样可以避免把最后的\0也转换到NSString里面
NSData *data = ……;
NSString *string = [NSString stringWithUTF8String:[data bytes]];
NSUTF8StringEncoding和NSASCIIStringEncoding都是NSString.h里定义的常理,类似还有一些其他编码,但是这组常量定义不包括GBK编码,所以如果你需要使用GBK编码时,就要自己想办法获得对应的encoding,具体做法如下:
NSStringEncoding gbkEncoding = CFStringConvertEncodingToNSStringEncoding(kCFStringEncodingGB_18030_2000);
NSString *string = [[NSString alloc] initWithData:data encoding:gbkEncoding];
NSData *data = [string dataUsingEncoding:gbkEncoding];
分享到:
相关推荐
- `+[NSData dataUsingEncoding:]`:直接使用字符串的编码转换为`NSData`,如`[NSString dataUsingEncoding:NSUTF8StringEncoding]`。 3. **NSData 转 Byte数组** - `NSData`本质上就是Byte数组,可以使用`...
2. **NSString转NSData**:可以使用`- dataUsingEncoding:`方法将字符串编码为NSData,同样需要指定编码。例如: ```objective-c NSString *text = ...; // 文本字符串 NSData *data = [text dataUsingEncoding:...
还有一种方法是将char转化为NSString,然后使用NSString的`dataUsingEncoding`方法将其转化为NSData。示例代码如下: ```objective-c char *postData = "TEST"; NSString *postDataStr = [NSString stringWithUTF8...
在解析xib文件的时候发现有的节点内容的编码是 base64-UTF8,其实这个节点内容的编码顺序是先将NSString转化为utf8格式的NSData,再将NSData通过base64加密。刚拿到这样的字符串的时候感觉有点绕,但是仔细分析下来...
在本文中,我们将探讨如何使用NSData与其他类型,特别是NSDictionary和JSON数据进行转换。 首先,NSData允许开发者将各种数据类型(如结构体、图像等)转换为二进制格式,以便于存储或在网络上传输。例如,在提供的...
可以使用Base64编码将二进制数据转换为可打印的ASCII字符串,便于在网络传输或存储时使用。 在解密过程中,流程基本相反:首先,你需要同样的密钥和初始化向量,然后调用`CCCrypt`函数进行解密。解密后,如果原始...
ios相关数据类型之间的互换//NSData 转 NSString //NSString 转 NSData//NSArray 转 NSString char 转NSString
本文档旨在全面解析`NSData`的使用方法、功能特性以及在实际开发中的应用技巧,帮助开发者深入理解并高效利用这一关键组件。 ### 一、`NSData`简介 `NSData`是Objective-C语言中用于封装任意长度二进制数据的类。...
扩展还提供了两种方法来将`NSData`转换为`NSString`,分别是以UTF-8编码和指定编码进行转换: - `UTF8String`:此方法将`NSData`转换为UTF-8编码的`NSString`。UTF-8是最常用的多字节编码标准,广泛应用于互联网上...
当我们需要将一个NSDictionary序列化成NSData时,可以使用`NSKeyedArchiver`类的`archiveRootObject:toFile:`方法。这个方法会将指定的根对象(这里就是我们的NSDictionary)编码并保存到一个文件中。在内存中操作...
3. `NSDate`转`NSData`:利用`NSKeyedArchiver`进行归档,将`NSDate`对象编码为`NSData`。 4. `NSData`转`NSDate`:使用`NSKeyedUnarchiver`进行解档,将数据还原为`NSDate`对象。 这个Demo代码可以帮助开发者理解...
使用这个工具类,我们就可以非常便捷地对NSString和NSData进行MD5加密,如以下示例所示: ```swift let str = "Hello, Swift!" print(SKYMD5Tool.md5(str)) // 输出:21232f297a57a5a743894a0e4a801fc3 let data =...
NSData+Crypto是一个 Mac 和 iOS 的NSData和NSString包装器,用于 CommonCrypto 框架的摘要方法。 包装了以下摘要函数: MD2 MD4 MD5 沙1 sha224 sha256 sha384 sha512 所有摘要函数都可用于NSData 、 ...
- (NSData *)AES256EncryptWithKey:(NSString *)key; - (NSData *)AES256DecryptWithKey:(NSString *)key; + (NSData *)dataWithBase64EncodedString:(NSString *)string; - (id)initWithBase64EncodedString:...
- (NSData *)AES256EncryptWithKey:(NSString *)key; - (NSData *)AES256DecryptWithKey:(NSString *)key; + (NSData *)dataWithBase64EncodedString:(NSString *)string; - (id)initWithBase64EncodedString:...
本文将深入探讨Ascii85编码,以及如何在Objective-C中利用类别(Category)为NSData和NSString添加这种编码功能。 Ascii85编码源于Adobe PostScript,后来被纳入了RFC 1924标准,其目的是将二进制数据转换为ASCII...
1. **获取NSString的UTF8编码**:NSString可以通过`dataUsingEncoding:`方法转换为NSData,通常选择UTF8编码。 ```objc NSData *data = [str dataUsingEncoding:NSUTF8StringEncoding]; ``` 2. **遍历NSData的每一...
在压缩包中的"NSData"文件,可能包含了不同的示例,比如展示了如何读取文件数据、如何从网络下载数据、如何将数据编码成JSON格式、如何进行数据加密等。通过研究这些示例,开发者可以深入理解NSData类的使用,并将其...
- (NSData *)AES256EncryptWithKey:(NSString *)key; - (NSData *)AES256DecryptWithKey:(NSString *)key; ``` 这些方法分别用于使用AES-256算法对`NSData`对象进行加密和解密。AES是一种对称加密算法,以其高效和...
NSData+Base64类。提供两个方法。1. + (NSData *)dataFromBase64String:(NSString *)aString; 2. - (NSString *)base64EncodedString;