`
lizhuang
  • 浏览: 906558 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

另外一种NSData转为NSString的方法

阅读更多
If the data is not null-terminated, you should use -initWithData:encoding:

NSString* newStr = [[NSString alloc] initWithData:theData encoding:NSUTF8StringEncoding];

If the data is null-terminated, you should instead use -stringWithUTF8String: to avoid the extra \0 at the end.

NSString* newStr = [NSString stringWithUTF8String:[theData bytes]];



.net遇见的奇葩问题,原因是
\0是C++中字符串的结尾标志,存储在字符串的结尾。比如char cha[5]表示可以放4个字符的数组,由于c/c++中规定字符串的结尾标志为'\0',它虽然不计入串长,但要占内存空间,而一个汉字一般用两个字节表示,且c/c++中如一个数组cha[5],有5个变量,分别是 cha[0] , cha[1] , cha[2] , cha[3] , cha[4] , 所以cha[5]可以放4个字母(数组的长度必须比字符串的元素个数多1,用以存放字符串结束标志'\0')或者放2个汉字(1个汉字占2个字节,1个字母占一个字节),cha[5]占5个字节内存空间。
分享到:
评论

相关推荐

    ios demo,NSData和NSString之间的相互转换的源代码

    在iOS开发中,NSData和NSString是两种非常基础且重要的数据类型。NSData通常用于存储二进制数据,如图片、音频或任何其他非文本格式的数据,而NSString则专门用于处理文本内容。在实际应用中,我们经常需要在这两种...

    NSData 与 NSString,Byte数组,UIImage 的相互转换

    - 使用`-[NSData description]`方法可以将`NSData`转换为一个表示其内容的字符串,但这通常用于调试,结果可能不易读。 - 更常见的是,如果数据代表ASCII或UTF-8编码的文本,可以使用`+[NSString stringWithData:...

    ios的NSString, char, NSData格式转化

    还有一种方法是将char转化为NSString,然后使用NSString的`dataUsingEncoding`方法将其转化为NSData。示例代码如下: ```objective-c char *postData = "TEST"; NSString *postDataStr = [NSString stringWithUTF8...

    ios NSData NSString AES加密解密算法源码

    初始化向量是用于增加加密过程的随机性的另一个关键数据,通常也是128位。 接下来,你可以使用`CCCrypt`函数进行加密操作。该函数接受加密模式(如ECB、CBC等)、操作类型(加密或解密)、填充方式等参数,并返回...

    NSData-Crypto:NSDataNSString 包装器中的 MD5、SHA1 和许多其他常见摘要方法

    NSData+Crypto是一个 Mac 和 iOS 的NSData和NSString包装器,用于 CommonCrypto 框架的摘要方法。 包装了以下摘要函数: MD2 MD4 MD5 沙1 sha224 sha256 sha384 sha512 所有摘要函数都可用于NSData 、 ...

    Ascii85-Encoding-Categories:NSData 和 NSString 的简单类别以支持将它们编码为 Ascii85。 这些类别采用 RFC 1924 Ascii85 字符集

    `:这个方法可能是对NSData的一个实例方法,它将Ascii85编码的字符串解码回原始的二进制数据。 3. `- (NSString *)ascii85EncodedString;`:这可能是NSString的类别方法,用于将字符串转换为其Ascii85编码的表示...

    swift-一行代码搞定NSString和NSData的md5加密

    标题提到的“一行代码搞定NSString和NSData的md5加密”意味着存在一个高效且简洁的方法来实现这个功能。 在Swift中,尽管我们可以直接使用内置的CryptoKit框架或者Foundation框架的Digest类来实现MD5哈希,但这些...

    NSData扩展

    扩展还提供了两种方法来将`NSData`转换为`NSString`,分别是以UTF-8编码和指定编码进行转换: - `UTF8String`:此方法将`NSData`转换为UTF-8编码的`NSString`。UTF-8是最常用的多字节编码标准,广泛应用于互联网上...

    数据类型之间的转换

    ios相关数据类型之间的互换//NSData 转 NSString //NSString 转 NSData//NSArray 转 NSString char 转NSString

    Base64:NSData和NSString的Objective-C Base64添加

    在Mac OS X和iOS上用于Objective-C的Base64附加项 警告:不再需要此代码,macOS,iOS,iPadOS,watchOS和tvOS的所有最新版本均随附base64。 以下性能指标可用于与2012年提供的库进行比较,并且可能无法反映当前的...

    iOS NSData 详细使用说明

    本文档旨在全面解析`NSData`的使用方法、功能特性以及在实际开发中的应用技巧,帮助开发者深入理解并高效利用这一关键组件。 ### 一、`NSData`简介 `NSData`是Objective-C语言中用于封装任意长度二进制数据的类。...

    NSData+AESCrypt

    在csdn上看到一个要十分的 不能忍 特上源码网站下载一个低分传上 @interface NSData (AESCrypt) - (NSData *)AES256EncryptWithKey:(NSString *)key; - (NSData *)AES256DecryptWithKey:(NSString *)key; + ...

    NSData+AESCrypt库

    - (NSData *)AES256EncryptWithKey:(NSString *)key; - (NSData *)AES256DecryptWithKey:(NSString *)key; + (NSData *)dataWithBase64EncodedString:(NSString *)string; - (id)initWithBase64EncodedString:...

    ios demo,NSData和NSDictionary之间的相互转换的实现案例

    当我们需要将一个NSDictionary序列化成NSData时,可以使用`NSKeyedArchiver`类的`archiveRootObject:toFile:`方法。这个方法会将指定的根对象(这里就是我们的NSDictionary)编码并保存到一个文件中。在内存中操作...

    NSData+CommonCrypto

    这个`NSData+CommonCrypto`扩展提供了一种方便的方式来实现常见的加密和解密操作,这些操作是基于Apple的`CommonCrypto`库的。`CommonCrypto`是苹果提供的一套C语言接口,用于实现多种加密算法,如AES(高级加密标准...

    iPhone之NSString常用方法示例程序

    在提供的压缩包文件中,可能包含一个名为"NSString"的示例项目,该项目可能包含多个Objective-C文件,展示了上述方法的实际应用场景。通过分析和运行这些示例,开发者可以更直观地学习和掌握NSString的使用。在iOS...

    NSData与NSDictionary、JSON数据类型相互转换

    另外,NSDictionary也可以通过归档(Archiving)的方式转换为NSData,这是iOS提供的一种序列化机制。归档不仅可以用于转换至NSData,还可以用于持久化对象,例如使用NSKeyedArchiver类。反向操作则使用...

    NSDateAndNSData Demo代码

    `NSData`则是一个用来存储和处理原始二进制数据的类,可以用来保存图片、音频、视频等非结构化的数据,或者序列化后的结构化数据,如JSON或XML。 `NSString`是Objective-C中的基础类,用于处理和操作文本字符串。它...

    XML文件转化成NSData对象的方法

    除了`GDataXMLDocument`,iOS还提供了另一个内置的XML解析器——`NSXMLParser`。`NSXMLParser`遵循了事件驱动的解析模型,它会在解析过程中调用一系列的代理方法。以下是一个简单的使用`NSXMLParser`的例子: ```...

    NSData+Base64

    NSData+Base64类。提供两个方法。1. + (NSData *)dataFromBase64String:(NSString *)aString; 2. - (NSString *)base64EncodedString;

Global site tag (gtag.js) - Google Analytics