[英]objective-c NSFilePosixPermissions to human readable NSString
[英]Hex to human readable NSString
我有这样的输出:
63006f00 6c006f00 72000000
这个输出的意思是“颜色”,但是如何在可可中得到呢?
我也在Stackoverflow上找到了这种方法:
- (NSString *)hexToString:(NSString *)string {
NSMutableString * newString = [[NSMutableString alloc] init];
NSScanner *scanner = [[NSScanner alloc] initWithString:string];
unsigned value;
while([scanner scanHexInt:&value]) {
[newString appendFormat:@"%c",(char)(value & 0xFF)];
}
string = [newString copy];
return string;
}
它可以工作...但是我的字符串必须如下所示:
@"63 00 6f 00 6c 00 6f 00 72 00 00 00"
如上格式化字符串有帮助吗?
您可以更改代码以使用原始输入,如下所示:
NSString *string = @"0x63006f00 0x6c006f00 0x72000000";
NSMutableString * newString = [[NSMutableString alloc] init];
NSScanner *scanner = [[NSScanner alloc] initWithString:string];
unsigned value;
while([scanner scanHexInt:&value]) {
uint16_t a = (value >> 24) & 0xff;
uint16_t b = (value >> 8) & 0xff;
if (a) [newString appendFormat:@"%c", a];
if (b) [newString appendFormat:@"%c", b];
}
NSLog(@"%@", newString);
这个想法是一次处理两个字符,并在用0xff
掩盖它们之前将相应的项目移到适当的位置。
但是,这看起来很像一种解决方法,可以读取以UTF-16编码的内容。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.