代码改变世界

NSData 转NSString 当编码为utf-8时

2018-02-01 18:21  zlj1817  阅读(1214)  评论(0编辑  收藏  举报

方法1:
[[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding];

如果编码data中含有非NSUTF8String,则返回nil。

方法2:
[NSString stringWithUTF8String:[data bytes]];

如果字符串中间含有Nul的,Nul后面在字符串将丢失。

具体原因为:
stringWithUTF8String: will assume that its input is a NUL-terminated string,

stringWithUTF8String 他假设的输入流是个以Nul 结束的字符串。
在字符串结尾系统自动加上的‘\0’,以让系统识别出一个字符串的结尾。