21

I use a few special uniode chars in my app, but since iOS 5 these have been replaced with emoji characters. How can I force the unicode characters to be displayed and not the emoji characters? Thanks

RunLoop
  • 20,288
  • 21
  • 96
  • 151

4 Answers4

19

This is an old question but it plagued me a lot recently until I found the answer.

Just add '\U0000FE0E' after the character that we want to prevent from becoming an emoji.

For example:

@"▶"  // should be written as:
@"▶\U0000FE0E"

Using the escaped unicode works as well:

@"\u25B6"  // should be written as:
@"\u25B6\U0000FE0E"

We need to use Unicode variants to prevent certain characters from becoming emoji.

Here is the article that solved my problem.

BFeher
  • 557
  • 5
  • 12
  • Thanks! Ran into this exact issue today with the same unicode symbol too. This solution works perfectly. – ChrisJP May 09 '14 at 06:14
9

Just to add to BFerer's helpful answer, I found this works similarly in Swift:

    "▶\u{0000FE0E}"
Larry
  • 421
  • 5
  • 8
  • this doesn't work anymore in iOS9 / Swift 2. Any suggestions? – 1b0t Oct 14 '15 at 17:42
  • to answer my own question. Apparently San Fransisco simply doesn't have the char. Setting the Font back to Helvetica Neue fixes it. – 1b0t Oct 14 '15 at 17:45
0

There's a few mentions of this issue on Apple's private devforums (which you have access to if you're a registered member of the iOS developer program).

It sounds like the potential solution would be to explicitly set the font for whatever you're trying to display.

Michael Dautermann
  • 88,797
  • 17
  • 166
  • 215
-1

Use "Hiragino Mincho ProN" for the font. It worked for me, but unfortunately I had to change the insets to make things look correct. I had to add an inset to the top to place things as they were before the iOS update.

All the credit goes to Kevin Ballard who answered my post in the following discussion - Unicode characters being drawn differently in iOS5

Community
  • 1
  • 1
Yogurt
  • 2,913
  • 2
  • 32
  • 63