如何将NSString值转换为NSData?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何将NSString值转换为NSData?相关的知识,希望对你有一定的参考价值。
如何将NSString
值转换为NSData
?
答案
NSString* str = @"teststring";
NSData* data = [str dataUsingEncoding:NSUTF8StringEncoding];
另一答案
NSString *str = @"Banana";
NSData *data = [str dataUsingEncoding:NSUTF8StringEncoding allowLossyConversion:true];
另一答案
Objective-C的
NSString *str = @"Hello World";
NSData *data = [str dataUsingEncoding:NSUTF8StringEncoding allowLossyConversion:NO];
迅速
let str = "Hello World"
let data = string.data(using: String.Encoding.utf8, allowLossyConversion: false)
另一答案
NSString *str = @"helowrld";
// This converts the string to an NSData object
NSData *data = [str dataUsingEncoding:NSUTF8StringEncoding];
你可以参考这个link
另一答案
做:
NSData *data = [yourString dataUsingEncoding:NSUTF8StringEncoding];
然后随意继续使用NSJSONSerialization:JSONObjectWithData
。
Correction to the answer regarding the NULL terminator
在评论,官方文档和verifications之后,关于删除所谓的NULL终止符的更新得到了更新:
- 正如dataUsingEncoding:所记录的那样:
回报价值
使用NO作为第二个参数调用
dataUsingEncoding:allowLossyConversion:
的结果 - 正如getCString:maxLength:encoding:和cStringUsingEncoding:所记录:
请注意,
dataUsingEncoding:allowLossyConversion:
返回的数据不是严格的C字符串,因为它没有NULL终止符
另一答案
如果Swift Developer来到这里,
从NSString / String转换为NSData
var _nsdata = _nsstring.dataUsingEncoding(NSUTF8StringEncoding)
另一答案
Objective-C的:
NSString *str = @"test string";
NSData *data = [NSKeyedArchiver archivedDataWithRootObject:str];
NSString *thatStr = [NSKeyedUnarchiver unarchiveObjectWithData:data];
迅速:
let str = "test string"
let data = NSKeyedArchiver.archivedData(withRootObject: str)
let thatStr = NSKeyedUnarchiver.unarchiveObject(with: data) as! String
另一答案
首先,你应该使用dataUsingEncoding:
而不是通过UTF8String
。当您在该编码中需要UTF8String
字符串时,您只使用C
。
然后,对于UTF-16
,只需在你的NSUnicodeStringEncoding
消息中传递NSUTF8StringEncoding
而不是dataUsingEncoding:
。
另一答案
对于Swift 3,你将主要从String
转换为Data
。
let myString = "test"
let myData = myString.data(using: .utf8)
print(myData) // Optional(Data)
另一答案
NSString *str = @"hello";
NSData *data = [NSData dataWithBytes:str.UTF8String length:str.length];
另一答案
Objective-C的:
NSString到NSData:
NSString* str= @"string";
NSData* data=[str dataUsingEncoding:NSUTF8StringEncoding];
NSData到NSString:
NSString* newStr = [[NSString alloc] initWithData:theData encoding:NSUTF8StringEncoding];
迅速:
字符串到数据:
var testString = "string"
var somedata = testString.data(using: String.Encoding.utf8)
数据到字符串:
var backToString = String(data: somedata!, encoding: String.Encoding.utf8) as String!
以上是关于如何将NSString值转换为NSData?的主要内容,如果未能解决你的问题,请参考以下文章
将 UTF-8 编码的 NSData 转换为 NSString
将 NSData 转换为 NSString 并再次转换为 NSData?