我试图将头(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”之后还有其他非打印字符?字符串的长度是多少?
如果后面还有其他有趣的字符,可以截断字符串或使用NSString的dataHeader
方法:
if dataHeader.hasPrefix("PK") {
// do something
}