次の形式の絵文字コードを含むNSStringを含むNSArrayがあります。
0x1F463
どうすればそれらを正しい形式のNSStringに変換できますか?
このメソッドを使用すると、「絵文字」を生成できます-NSString:
NSString *emoji = [NSString stringWithFormat:@"\U0001F463"];
ただし、これは定数NSStringでのみ可能です。NSArray全体を変換するにはどうすればよいですか?
次の形式の絵文字コードを含むNSStringを含むNSArrayがあります。
0x1F463
どうすればそれらを正しい形式のNSStringに変換できますか?
このメソッドを使用すると、「絵文字」を生成できます-NSString:
NSString *emoji = [NSString stringWithFormat:@"\U0001F463"];
ただし、これは定数NSStringでのみ可能です。NSArray全体を変換するにはどうすればよいですか?
私の最高の仕事ではありませんが、うまくいくようです:
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組の素足を取得します。
あなたはこのようにそれを行うことができます:
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);