3

次の形式の絵文字コードを含むNSStringを含むNSArrayがあります。

0x1F463

どうすればそれらを正しい形式のNSStringに変換できますか?

このメソッドを使用すると、「絵文字」を生成できます-NSString:

NSString *emoji = [NSString stringWithFormat:@"\U0001F463"];

ただし、これは定数NSStringでのみ可能です。NSArray全体を変換するにはどうすればよいですか?

4

2 に答える 2

4

私の最高の仕事ではありませんが、うまくいくようです:

for (NSString *string in array)
{
    @autoreleasepool {
        NSScanner *scanner = [NSScanner scannerWithString:string];
        unsigned int val = 0;
        (void) [scanner scanHexInt:&val];
        NSString *newString = [[NSString alloc] initWithBytes:&val length:sizeof(val) encoding:NSUTF32LittleEndianStringEncoding];
        NSLog(@"%@", newString);
        [newString release]; // don't use if you're using ARC
    }
}

サンプル値の4つの配列を使用して、4組の素足を取得します。

于 2012-12-22T02:27:58.550 に答える
2

あなたはこのようにそれを行うことができます:

NSString *str = @"0001F463";
// Convert the string representation to an integer
NSScanner *hexScan = [NSScanner scannerWithString:str];
unsigned int hexNum;
[hexScan scanHexInt:&hexNum];
// Make a 32-bit character from the int
UTF32Char inputChar = hexNum;
// Make a string from the character
NSString *res = [[NSString alloc] initWithBytes:&inputChar length:4 encoding:NSUTF32LittleEndianStringEncoding];
// Print the result
NSLog(@"%@", res);
于 2012-12-22T02:26:29.047 に答える