NSString: Поиск Unicode для надстрочного кода: 1, 2, 3

Я ищу Unicode или какой-то метод или байтовый язык, который может выводить надписи для 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;   
}