Objective c 如何将NSString转换为十六进制值
我有下面一行代码,我想转换成Objective c 如何将NSString转换为十六进制值,objective-c,Objective C,我有下面一行代码,我想转换成HexDecimal值 NSString *hexDecimal = @"€"; 我希望结果为hexDecimalValue=0x20acNSScanner可以这样做。下面是一个示例方法: - (NSNumber *)scanHex:(NSString *)aString { NSScanner *sc=[NSScanner scannerWithString:aString]; if(![sc scanString:@
HexDecimal
值
NSString *hexDecimal = @"€";
我希望结果为
hexDecimalValue=0x20ac
NSScanner可以这样做。下面是一个示例方法:
- (NSNumber *)scanHex:(NSString *)aString {
NSScanner *sc=[NSScanner scannerWithString:aString];
if(![sc scanString:@"&#x" intoString:NULL]) return nil;
unsigned long long val;
if(![sc scanHexLongLong:&val]) return nil;
return [NSNumber numberWithUnsignedLongLong:val];
}
如果
aString
没有您列出的
,或者后面没有有效的十六进制字符串,则此方法将返回nil
。否则,它将返回一个具有所需值的NSNumber对象。看起来您有HTML/XML转义实体。您真正想要使用的是核心基础函数CFSTRIGATION转换。
为此,您需要一个NSMutableString并将其桥接到CFMutableString
秘密在于这个CF函数包装了ICU(Unicode国际组件)库的字符串转换
ICU文件将为您提供更多可能的转换。但是对于这个,如果我没记错的话,你想要十六进制Any作为你的变换