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

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

我有UTF-8编码NSData在windows服务器上,我想将其转换为NSString为了iPhone。由于数据包含的字符(如程度符号)在两个平台上都有不同的值,如何将数据转换为字符串?



慕桂英3389331
浏览 714回答 3
3回答

守着星空守着你

如果数据未以空结尾,则应使用-initWithData:encoding:NSString*&nbsp;newStr&nbsp;=&nbsp;[[NSString&nbsp;alloc]&nbsp;initWithData:theData&nbsp;encoding:NSUTF8StringEncoding];如果数据为空终止,则应使用-stringWithUTF8String:为了避免额外的\0最后。NSString*&nbsp;newStr&nbsp;=&nbsp;[NSString&nbsp;stringWithUTF8String:[theData&nbsp;bytes]];(请注意,如果输入没有正确地编码utf-8,您将得到nil.)SWIFT变式:let&nbsp;newStr&nbsp;=&nbsp;String(data:&nbsp;data,&nbsp;encoding:&nbsp;.utf8)//&nbsp;note&nbsp;that&nbsp;`newStr`&nbsp;is&nbsp;a&nbsp;`String?`,&nbsp;not&nbsp;a&nbsp;`String`.如果数据以空结尾,则可以使用安全的方式删除该空字符,或者使用类似于上面的目标-C版本的不安全方式。//&nbsp;safe&nbsp;way,&nbsp;provided&nbsp;data&nbsp;is&nbsp;\0-terminatedlet&nbsp;newStr1&nbsp;=&nbsp;String(data:&nbsp;data.subdata(in:&nbsp;0&nbsp;..<&nbsp;data.count&nbsp;-&nbsp;1),&nbsp;encoding:&nbsp;.utf8)//&nbsp;unsafe&nbsp;way,&nbsp;provided&nbsp;data&nbsp;is&nbsp;\0-terminatedlet&nbsp;newStr2&nbsp;=&nbsp;data.withUnsafeBytes(String.init(utf8String:))

慕标琳琳

您可以调用此方法+(id)stringWithUTF8String:(const&nbsp;char&nbsp;*)bytes.
打开App,查看更多内容
随时随地看视频慕课网APP