我有以下代码行,我想转换为HexDecimal
值。
NSString *hexDecimal = @"€";
我希望结果为hexDecimalValue = 0x20ac
。
答案 0 :(得分:0)
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];
}
如果nil
没有您列出的aString
,或者如果后面没有有效的十六进制字符串,则此方法将返回&#x
。否则,它返回一个具有所需值的NSNumber对象。
答案 1 :(得分:0)
看起来你有HTML / XML转义实体。你真正想要使用的是Core Foundation函数CFStringTransform。 为此,您希望拥有一个NSMutableString并将其桥接到CFMutableString。
秘诀就是这个CF函数包装了ICU(International Components for Unicode)库的字符串转换。
ICU文档将为您提供更多可能的转换。但是为此,如果我没记错的话,你想要Hex-Any作为你的变换。