0

iOS アプリのアイコンにhttp://symbolset.comを使用していますが、カメラのシンボルを正しく表示できません。シンボルセットのドキュメントと FontForge では、Unicode 値は 1F4F7 であると書かれています。

関連するコードは次のとおりです。

[self setTitle:[NSString stringWithFormat:@"%C", (unichar)0x1F4F7] forState:controlState];

私も試しました:

[self setTitle:[NSString stringWithFormat:@"%C", (unichar)0x0001F4F7] forState:controlState];

ただし、これはチェックマーク記号に対して機能します。

[self setTitle:[NSString stringWithFormat:@"%C", (unichar)0x2713] forState:controlState];

フォントはオープンタイプです。また、Unicode 値を Localizable.strings ファイルに入れようとしましたが、うまくいきませんでした。TrueType フォントにする必要がありますか?

更新: TrueType フォントに変換しようとしましたが、同じ問題が発生しました。

4

1 に答える 1

3

問題は、unichar が 16 ビットしかないことですが、必要な文字は基本多言語面 (BMP) の外にあるため、UTF-16 (サロゲート ペア) で 2 文字を使用します。ペアを把握するか、次のようなことを行うことができます。

UTF32Char c = 0x1F4F7;
NSData *utf32Data = [NSData dataWithBytes:&c length:sizeof(c)];
NSString *camera = [[NSString alloc] initWithData:utf32Data encoding:NSUTF32LittleEndianStringEncoding];

//do stuff with camera here and release if not using ARC
于 2012-09-11T16:11:13.977 に答える