[英]Can't compare NSData header to string in Swift
我正在尝试将标头(NSData的第一个字节)与一个字符串进行比较,我可以成功打印该字符串,但是无法进行比较。
这是我尝试过的:
var dataHeader:NSString = NSString(bytes: data.bytes, length: min(data.length, 8), encoding: NSASCIIStringEncoding)!
println(dataHeader)
result: PK
“ PK”的ASCII为0x50 0x4B。
当我尝试以下操作时,没有任何反应:
if dataHeader == "PK" {
}
也许我是菜鸟,但是我没有任何想法,所以有人对如何解决这个问题有想法吗? 我猜想它与字符串编码有关,但是经过大量研究后,我仍然无法弄清楚。
任何帮助表示赞赏,谢谢!
如果是二进制数据,是否可能在“ PK”之后还有其他非打印字符? 字符串dataHeader
的长度是dataHeader
?
如果之后还有其他有趣的字符,则可以截断字符串或使用NSString的hasPrefix:
方法:
if dataHeader.hasPrefix("PK") {
// do something
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.