为了账号安全,请及时绑定邮箱和手机立即绑定

将UTF-8编码的NSData转换为NSString

将UTF-8编码的NSData转换为NSString

慕桂英3389331 2019-07-01 14:57:02
将UTF-8编码的NSData转换为NSString我有UTF-8编码NSData在windows服务器上,我想将其转换为NSString为了iPhone。由于数据包含的字符(如程度符号)在两个平台上都有不同的值,如何将数据转换为字符串?
查看完整描述

3 回答

?
守着星空守着你

TA贡献1799条经验 获得超8个赞

如果数据未以空结尾,则应使用-initWithData:encoding:

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

如果数据为空终止,则应使用-stringWithUTF8String:为了避免额外的\0最后。

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

(请注意,如果输入没有正确地编码utf-8,您将得到nil.)


SWIFT变式:

let newStr = String(data: data, encoding: .utf8)// note that `newStr` is a `String?`, not a `String`.

如果数据以空结尾,则可以使用安全的方式删除该空字符,或者使用类似于上面的目标-C版本的不安全方式。

// safe way, provided data is \0-terminatedlet newStr1 = String(data: data.subdata(in: 0 ..< data.count - 1), encoding: .utf8)// unsafe way, provided data is \0-terminatedlet newStr2 = data.withUnsafeBytes(String.init(utf8String:))


查看完整回答
反对 回复 2019-07-01
?
慕标琳琳

TA贡献1830条经验 获得超9个赞

您可以调用此方法

+(id)stringWithUTF8String:(const char *)bytes.


查看完整回答
反对 回复 2019-07-01
  • 3 回答
  • 0 关注
  • 713 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信