无法将 NSData header 与 Swift 中的字符串进行比较
Can't compare NSData header to string in Swift
我正在尝试将 header(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
的长度是多少?
如果后面还有其他搞笑的字符,可以截断字符串或者使用NSString的hasPrefix:
方法:
if dataHeader.hasPrefix("PK") {
// do something
}
我正在尝试将 header(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
的长度是多少?
如果后面还有其他搞笑的字符,可以截断字符串或者使用NSString的hasPrefix:
方法:
if dataHeader.hasPrefix("PK") {
// do something
}