Some emojis are replaced with a substituted character
Check for existing issues
- [X] Completed
Describe the bug / provide steps to reproduce it
Although there are a few other bug reports related to emojis, none appear to describe the behavior I'm experiencing.
Most emojis display just as expected in Zed, but every once in a while I run into one that fails to appear correctly. In order to isolate the problem--whether it occurs on insertion or display--I created a file in BBEdit, which does not have the same problem as Zed. I inserted 2 emojis in BBEdit and then opened it in Zed, and found Zed displayed it exactly as it does when inserting the same emoji into Zed, so the problem is related to display of that emoji and not insertion. I added a single lower-case 'x' in Zed and saved the file to see if Zed would corrupt it by changing the emoji character it could not display correctly. It did not. The file appeared in BBEdit the same except that the lowercase x was added.
Steps to reproduce the problem:
- create a file in BBEdit and add the red ❌ emoji (as well as others if you want);
- open the file in Zed and notice that the emoji is replaced with a different character;
- if you want to prove that Zed is only having problems with display, add characters and open the file again in BBEdit.
Environment
Zed: v0.147.2 (Zed) OS: macOS 14.5.0 Memory: 16 GiB Architecture: aarch64
If applicable, add mockups / screenshots to help explain present your vision of the feature
No response
If applicable, attach your Zed.log file to this issue.
No response
Can not reproduce on my Mac, I copied and pasted ❌ from your description:
Would you mind sharing your emoji.txt file?
Can not reproduce on my Mac
I'm on macOS 14.5 (23F79)... what version are you on?
I'm on macOS 14.5 (23F79)... what version are you on?
Same OS version, but I'm on the latest main branch zed build. I still can not reproduce this issue:
I just reproduced this. The rendering depends on the context. Most text editors handle a majority of the subset of emojis. However, Zed does choke on crossmark. Reference the attached screenshot. I have also included a test file.
Edits:
- On 14.6.1 (23G93)
- Zed Preview 0.149.0
Still can't reproduce on my end, this is so strange.
@JunkuiZhang what is the font in your settings.json?
@JunkuiZhang what is the font in your
settings.json?
Arial
https://github.com/user-attachments/assets/343d0ebe-f5bc-458e-a9cc-9e6d43d6a1e3
I've reproduced the problem. It appears to be an issue when using Zed Mono as the font.
https://github.com/user-attachments/assets/68e8eff1-5d12-4609-a5de-63c03760ef68
Using Andale Mono results in the proper rendering. I'll compile a list of commonly used fonts that don't work. Quick testing shows Source Code Pro works for me, but I would need to test more used fonts.
@JunkuiZhang what is the font in your
settings.json?Arial
I never ever ever ever use Arial
😂
For me even Andale Mono fails. (I was previously using the default font, which I think changed from Zed Mono to some IBM font recently.)
Arial fails too 😰
For me even Andale Mono fails. (I was previously using the default font, which I think changed from Zed Mono to some IBM font recently.)
![]()
This is a different option. Try buffer font option.
Got it!
I believe this needs to be classified as an issue with Zed Mono. This isn't the only font that is afflicted. I am partial to Iosevka and have seen this issue as well.
@dcontiveros If it afflicts multiple fonts, then are you sure it is a flaw in all of those fonts?
@dcontiveros If it afflicts multiple fonts, then are you sure it is a flaw in all of those fonts?
The codepoint 274C, which represents the character ❌, is handled by Zed Plex Mono:
Therefore, the glyph display issue is a problem with the font, not with Zed. If a font like Arial, which does not include this codepoint, is used, Zed will fallback to CoreText for rendering the character correctly.
Yes I figured this would most likely be a font issue vs. drawing. Emoji's are tough, especially in terminals. Any chance we can get a change on Zed Mono ?
Yes I figured this would most likely be a font issue vs. drawing. Emoji's are tough, especially in terminals. Any chance we can get a change on Zed Mono ?
Yes, simply deleting that codepoint can work, here is a quick demo, I deleted that glyph from Zed Plex Mono:
cc @notpeter Since there are some issue with Zed Plex Mono already in #15542, so I guess maybe could open an issue for the font?
Yeah, I don't know if the process for creating Zed Plex is documented/automated. @danilo-leal @iamnbutler
Sad to see the PR not getting merged.
Workaround: download the fonts from the PR, install them locally
Hi there! 👋 We're working to clean up our issue tracker by closing older issues that might not be relevant anymore. If you are able to reproduce this issue in the latest version of Zed, please let us know by commenting on this issue, and we will keep it open. If you can't reproduce it, feel free to close the issue yourself. Otherwise, we'll close it in 7 days. Thanks for your help!
This issue was closed due to inactivity. If you're still experiencing this problem, please open a new issue with a link to this issue.