Hi Eli, I searched this problem again and found: https://www.reddit.com/r/emacs/comments/pmghug/how_to_correctly_display_multicharacter_emojis/ https://lists.gnu.org/archive/html/emacs-devel/2021-09/msg01238.html The code below can solve the problem. (set-fontset-font t 'emoji '("Apple Color Emoji" . "iso10646-1") nil 'prepend) or (set-fontset-font t '(#x1f000 . #x1faff) (font-spec :family "Apple Color Emoji")) You are absolutely right on this: > 1) It is a very bad idea to do the likes of > > (set-fontset-font "fontset-default" 'unicode "Apple Color Emoji" nil 'prepend) > > That's because the character set 'unicode spans the entire range > of Unicode characters, and there's no single font that can > possibly support all of those characters. On Sat, Mar 19, 2022 at 4:51 PM Will Chang wrote: > > So it's a "C" (a.k.a. "Posix") language environment, looks like. > > Somewhat strange, but maybe this is "usual" on macOS? > > On the previous Emacs Mac Port versions, Emacs doesn't need to set > the code below to enable Emoji and the UTF-8 environment doesn't affect it. > > (set-fontset-font "fontset-default" 'unicode "Apple Color Emoji" nil > 'prepend) > > Maybe it's a bug on that port, I CC'ed the maintainer Mituharu. > > > > What happens if you evaluate > > > > (set-fontset-font "fontset-default" 'unicode "Apple Color Emoji" nil > 'prepend) > > > > again, after changing the language environment? > > It remains the same. > > > AFAICT, this shows that "incorrect" means Emacs uses the Symbola font. > > Thanks for the info. > > > Does Apple Color Emoji on your system have glyphs for the #x1F300 and > > #x1F600 characters? Those are the characters we request to be > > supported by a font that is used for emoji. > > I believe it has. > > > Currently, I removed the UTF-8 code and set the Apple Color Emoji font for > a > temporary solution. > > Again, thanks for your help, I learned a lot with your conversation, > you're so kind. ;) > > On Sat, Mar 19, 2022 at 2:53 PM Eli Zaretskii wrote: > >> [Please use Reply All so that the bug tracker is CC'ed.] >> >> > From: Will Chang >> > Date: Sat, 19 Mar 2022 11:06:06 +0800 >> > >> > >does this happen in "emacs -Q", if you evaluate the above >> > immediately upon entering Emacs? >> > >> > Yes. Tested it on: >> > "GNU Emacs 28.0.92 (build 2, x86_64-apple-darwin21.4.0, Carbon Version >> 165 >> > AppKit 2113.4) >> > of 2022-03-18" >> > "GNU Emacs 28.0.92 (build 1, x86_64-apple-darwin18.7.0, NS >> appkit-1671.60 >> > Version 10.14.6 (Build 18G95)) >> > of 2022-03-14" >> > >> > > what is the language environment before the evaluation of >> > set-language-environment above? >> > >> > I run describe-language-environment and got: >> > >> > English language environment >> > >> > Nothing special is needed to handle English. >> > >> > Sample text: >> > Hello!, Hi!, How are you? >> > >> > Input methods: >> > programmer-dvorak ("DVP@" in mode line) >> > english-dvorak ("DV@" in mode line) >> > >> > Character sets: >> > ascii: ASCII (ISO646 IRV) >> > >> > Coding systems: >> > nothing specific to English >> >> So it's a "C" (a.k.a. "Posix") language environment, looks like. >> Somewhat strange, but maybe this is "usual" on macOS? >> >> > > what is the output of "M-x describe-fontset RET fontset-default RET" >> > after evaluating set-language-environment, in particular in the >> > Emoji block starting from #x1F600? >> > >> > 😀 .. 🙏 (#x1F600 .. #x1F64F) >> > -*-Apple Color Emoji-*-*-*-*-*-*-*-*-*-*-*-* >> > -*-Noto Color Emoji-*-*-*-*-*-*-*-*-*-*-iso10646-1 >> > -*-Symbola-*-*-*-*-*-*-*-*-*-*-iso10646-1 >> > [-*-Symbola-normal-normal-semicondensed-*-12-*-*-*-p-0-iso10646-1] >> >> It sounds like Emacs used Symbola, although Apple Color Emoji is in >> the list, and is first in the list. Which probably means Emacs >> examined Apple Color Emoji and rejected it for some reason. >> >> What happens if you evaluate >> >> (set-fontset-font "fontset-default" 'unicode "Apple Color Emoji" nil >> 'prepend) >> >> again, after changing the language environment? >> >> > >what did you mean by "emoji doesn't show up correctly"? how was it >> > displayed "incorrectly"? >> > >> > The screenshots: >> > - default: https://i.imgur.com/jLcwEDk.png >> > - English with fontset(correctly): https://i.imgur.com/qgqhCHF.png >> > - UTF-8 with fontset: https://i.imgur.com/tkjOVGv.png >> >> AFAICT, this shows that "incorrect" means Emacs uses the Symbola font. >> >> Does Apple Color Emoji on your system have glyphs for the #x1F300 and >> #x1F600 characters? Those are the characters we request to be >> supported by a font that is used for emoji. >> >