Unicode Emoticon Set – Where to Find It

emojifontsgoogle-chromeunicode

I am trying to find a suitable font that contains the Unicode Emoticon set.

When an iPhone user sends me some emoticons over Google Hangouts they render either incorrectly or not at all.

The problem can be seen from the following screenshot from this Wikipedia page:

Emoticon set
Human diversity emoji

As you can see the Diversity emoticons are particularly problematic.

iPhone users can simply pick a "colour" (skin colour) and that's them done. Apparently the font used on the iPhone is Helvetica.

Those of us with Linux (in my case Ubuntu and Android) are stuck with an emoticon and an undefined symbol: Unrendered modifier glyph. The second glyph is supposed to modify the colour of the first glyph.

Obviously, this is because the font does not have the required glyph.

Now, I have been Googling around for a few hours and read a few pages, some of which pointing here, and there has been no solution at all. This includes all of the answers across the StackExchange network. Perhaps I'm asking the wrong question.

I have tried:

  • Symbola
  • Symbola706
  • CODE2001
  • CODE2002
  • xfonts-wqy
  • ttf-unifont
  • fonts-linuxlibertine
  • Open Sans Emoji
  • EmojiSymbols
  • Helvetica (though I can't remember where I downloaded it from)
  • Google Noto

None of them work. Either they are still missing the required symbols, they're missing all emoticon symbols despite claiming otherwise, they simply don't work, they don't show up as an option to select in Chrome (no idea why) or I simply can't make sense of them.

This page lists the symbols for "Google" as missing. I assume it means Android as I am receiving the message from an iPhone running the Google Hangouts app.

So, has anyone found a font that contains all the required symbols?

Best Answer

Noto Color Emoji from google.com/get/noto/#emoji-qaae-color is only usable in Android. On Windows, that font will not install (it is considered broken.invalid), because the Windows text renderers do not support colors in fonts. To display those colorful emojis, you'll need a plugin in your browser that will substitute SVG images (if the browser supports SVG), otherwise a scaled down bitmap (scaled bitmaps can be rescaled in HTML with simple CSS, on browsers that support zoom in CSS, or geometric transforms in the Canvas, so that the image will render at the expected font-size).

However I have no problem at all displaying all emojis listed in the Unicode charts on Wikipedia with my browser (Chrome on Windows 10).

But it's true that I have installed the FULL Noto font collection (except the Color Emojis font that Windows does not want), and even made it the default in my browser (because it has coherent metrics across all scripts) and supports almost all of them, many with various styles, and most of them are well hinted.

"Noto" is a fabulous collection of free fonts (with a free licence). Its development continues as Google wants it for Android in all languages of the world. Things are regularly updated to fix minor quirks. It is intended to cover all characters standardized in the Unicode/ISO 10646 repertoire.

"Robo" was an initial "fast" fallback collection created with less care but that provided missing characters for the huge ideographic scripts. But its design was not so careful. Progressively, characters are integrated to Noto and removed from the Robo collection. Also Robo exists in only one style (for other styles such as bold and italic, the text renderer of the browser will synthesize them, notably in Chrome, but italics may be too much slanted, and strokes may collide ungracefully in complex scripts with many strokes such as sinograms: there's no such problem with Noto that even provides 6 font-weights for CJK sinograms). So, use it only as a fallback for those that have old versions of Noto in CSS like as following: font-family:Noto,Robo,sans-serif;

That's all what is needed (you don't need more fonts, the last fallback to sans-serif allows getting access to some OS-specific fonts that would be present for implementing characters not found in Noto and not even in early versions of Robo when using early versions of Noto).

I really love Noto. Thanks to Google for making it fully open-sourced (and to all those that have contributed to extend it and fix quirks in complex scripts). It's definitely a huge improvement compared to what Microsoft did in the past (but only for Windows, and still with many mis-matching across world scripts).