NSString: ищет Unicode для надстрочного кода: 1, 2, 3
Я ищу Юникод или какой-то метод или байтовый язык, который может выдавать суперскрипты для 1, 2, 3. По какой-то причине Unicode имеет суперскрипты для 0, 4, 5, 6, 7, 8, 9, но не 1, 2, 3.
Можете ли вы сделать суперскрипты, такие как HTML в NSString
?
3 ответа:
Из палитры символов:
¹ SUPERSCRIPT ONE Unicode: U+00B9, UTF-8: C2 B9 ² SUPERSCRIPT TWO Unicode: U+00B2, UTF-8: C2 B2 ³ SUPERSCRIPT THREE Unicode: U+00B3, UTF-8: C2 B3
Это, чтобы сделать их в
NSStrings
, вы бы сделали:NSString *superscript1 = @"\u00B9"; NSString *superscript2 = @"\u00B2"; NSString *superscript3 = @"\u00B3";
Я знаю, что на этот вопрос уже дан ответ, но если кто-то хочет повторно использовать мой код для преобразования стандартной строки чисел в Надстрочный код, вот он.
-(NSString *)superScriptOf:(NSString *)inputNumber{ NSString *outp=@""; for (int i =0; i<[inputNumber length]; i++) { unichar chara=[inputNumber characterAtIndex:i] ; switch (chara) { case '1': NSLog(@"1"); outp=[outp stringByAppendingFormat:@"\u00B9"]; break; case '2': NSLog(@"2"); outp=[outp stringByAppendingFormat:@"\u00B2"]; break; case '3': NSLog(@"3"); outp=[outp stringByAppendingFormat:@"\u00B3"]; break; case '4': NSLog(@"4"); outp=[outp stringByAppendingFormat:@"\u2074"]; break; case '5': NSLog(@"5"); outp=[outp stringByAppendingFormat:@"\u2075"]; break; case '6': NSLog(@"6"); outp=[outp stringByAppendingFormat:@"\u2076"]; break; case '7': NSLog(@"7"); outp=[outp stringByAppendingFormat:@"\u2077"]; break; case '8': NSLog(@"8"); outp=[outp stringByAppendingFormat:@"\u2078"]; break; case '9': NSLog(@"9"); outp=[outp stringByAppendingFormat:@"\u2079"]; break; case '0': NSLog(@"0"); outp=[outp stringByAppendingFormat:@"\u2070"]; break; default: break; } } return outp; }
При заданной входной строке чисел он просто возвращает эквивалентную строку надстрочного кода.
Edit (спасибо jrturton):
-(NSString *)superScriptOf:(NSString *)inputNumber{ NSString *outp=@""; unichar superScripts[] = {0x2070, 0x00B9, 0x00B2,0x00B3,0x2074,0x2075,0x2076,0x2077,0x2078,0x2079}; for (int i =0; i<[inputNumber length]; i++) { NSInteger x =[[inputNumber substringWithRange:NSMakeRange(i, 1)] integerValue]; outp=[outp stringByAppendingFormat:@"%C", superScripts[x]]; } return outp; }
Символы существуют
- Надстрочный знак 1: http://www.fileformat.info/info/unicode/char/b9/index.htm
- Надстрочный код 2: http://www.fileformat.info/info/unicode/char/b2/index.htm
- Надстрочный текст 3: http://www.fileformat.info/info/unicode/char/b3/index.htm