日本語教師、プログラマーになる。

韓国に嫁いで日本語を教えていましたが、なんやかんやでiOSアプリ作ってます。

Apple絵文字(emoji)が文字化けっていうか四角に囲まれた「A」みたいな子が出てくる

のを、修正した問題。

ハマってしまってかなり時間がかかった。

 

まず、ただのUILabel.textならなんともないのを確認。

なのにAttributedtextにしたら、本来なら絵文字が出るべきところでアルファベットの「A」がグレちゃったみたいな子が出てくるの。AttributedStringを使って色つけたりしてるんで、ないと困るんですけど><

 

何ていうんだろう

少年Aの引きこもり。みたいな。

少女Aの隠された過去。みたいな。

背中合わせの二人。みたいな。

そんな絵文字。

 

f:id:lavandin:20161015122810p:plain←こいつ。

 

しかもこやつが毎回じゃなくて、出現箇所によっては普通にお利口さんだったり、グレちゃったりでまちまち。

どうも末尾に現れるとグレやすいみたい。

さらに、UILabelの時だけ出てきて、UITextViewでは大丈夫なのも意味わからん。いっその事UITextViewに変えちゃおうかとも思ったけど、Storyboardを使っていたので諦めた。

 

Aのへんなの」とか「Aの暗いの」でググってももちろん出てくるはずなく、途方に暮れていたら「Emoji garble」か何かで見つけた

(英語で文字化けはGarbleらしい。byGoogle先生)

 

stackoverflow.com

 

そう!!そう!!キミだよキミィ!!

 

って嬉しくなったけど元々NSDataじゃねえし何なの

ていうかmessed up とも言うのね。それは勉強になった。

 

さらに検索していたらやっと見つけました

stackoverflow.com

 

説明を読む限りなんか症状は違う(絵文字そのものは無事で、後続の文字列に症状が現れているみたい)けど、もしかして末尾でグレやすいのは長さのせい??

と閃いて、ダメ元でやってみた。

 

string.characters.count

string.utf16.count

 

に、したら見事解決!!

やった~><

f:id:lavandin:20161015122401p:plain

 

どうもemojiってのは、カラーか白黒かを識別する文字がこっそりくっついているらしいのね。

そいつのせいで、1文字なのに2文字と誤認してしまう場合があるらしくて、そいつのせいだったみたい。

 

ところでこのAの黄昏てるヤツは一体何の絵文字だったのでしょう?

血液型のAとかかなぁ?

なら、逆向きのは何?RHマイナスとか?と妄想がふくらむ。

 

見つかりやすいように色々とキーワードを散りばめてみましたが、いかがでしょう?

もしも検索に引っかかって、参考になっていたら嬉しいです。

 

絵文字って、末尾につけることが多いですもんね~😑

 

ちなみに、検索していて見つけた情報ですが、MacではControlCommandSpaceで絵文字の一覧が出ます。

どうでもいいですよ~🎤