2016-07-28 33 views
2

UILabelにユニコード(「\ uE43B」)を使用していますが、実際のデバイスでは動作しません。コードは以下の通りです:特殊絵文字が正しく表示されない

UILabel *label = [[UILabel alloc] initWithFrame:CGRectMake(0, 0, size.width, size.height)]; 
[self.view addSubview:label]; 
label.text = @"The emoji is:\uE43B"; 
label.textAlignment = NSTextAlignmentCenter; 

結果は、シミュレータで実行されます:

enter image description here

私は私のデバイス(iPhone6 9.3.2)で、それを実行すると、それは長方形の文字を示しています。

enter image description here

私は\uE43Bthis siteをGoogleで検索していると言う:

これは私用コードポイントです。つまり、意図的にどのキャラクターにも割り当てられません。バージョン1.1のUnicodeに追加され、ブロックPrivate Use Areaに属します。

しかし、私はまだシミュレータの仕組みを理解していない、wechatのようないくつかのアプリも絵文字を表示することができます。

+0

この問題は\ u438でのみ発生しますか? – David

+0

私はそうは思わない。 – KudoCC

答えて

1

あなたのiPhoneで使用していないカスタムフォントをMacで使用している可能性があります。注意しておきますが、これは適切なUnicodeコードポイントではありません。それは私用キャラクターです。これらのコードポイントは、必要に応じてフォントに追加することができます。

iOSシミュレータは、Mac互換のバージョンのUIKitを含むMacアプリケーションです。 iOSデバイスで使用できない場合でも、Macで利用できるものはSimulatorで利用できます。

あなたが参照している特定の文字はU+1F38F (CARP STREAMER)です。 U + E43Bにマッピングされた理由はわかりません。これをレガシーコードポイント(私用文字の一般的な使用)として使用するアジアフォントを使用することができます。

+0

ありがとう、それは 'label.text = @"で動作します。絵文字は:\ U0001f38f ";'です。私はあなたがU + 1F38Fをどうやって間違ったユニコードと非常に速く見つけたのか不思議です。 – KudoCC

+0

この検索:http://emojipedia.org/search/?q=fish –

+0

ありがとうございました! – KudoCC

関連する問題