mojira.dev
MC-262169

Some emoji show control characters

Some emoji use the zero width joiner (ZWJ) and variation selector 15/16 (VS15/VS16) characters. When those emoji are inputted into Minecraft they will appear correct, but will also have the ZWJ and VS characters rendered.

As an example, open the windows emoji picker and search for "face in clouds" πŸ˜Άβ€πŸŒ«οΈ, or "trade mark" ℒ️. (πŸ˜Άβ€πŸŒ«οΈ will render as two separate emoji, but that's fine, more on that later.)

I suggest that the ZWJ and VS15/16 control characters are included in the minecraft/font/include/space.json file, same as it was done for [MC-226359].

For example, take the following sequence:

πŸ˜Άβ€πŸŒ«οΈ ⏲️ ℒ️ ⌚︎ ⌚️

The unicode encoding of this string is

U+1F636 : FACE WITHOUT MOUTH
U+200D : ZERO WIDTH JOINER [ZWJ]
U+1F32B : FOG
U+FE0F : VARIATION SELECTOR-16 [VS16] {emoji variation selector}
U+0020 : SPACE [SP]
U+23F2 : TIMER CLOCK
U+FE0F : VARIATION SELECTOR-16 [VS16] {emoji variation selector}
U+0020 : SPACE [SP]
U+2122 : TRADE MARK SIGN
U+FE0F : VARIATION SELECTOR-16 [VS16] {emoji variation selector}
U+0020 : SPACE [SP]
U+231A : WATCH
U+FE0E : VARIATION SELECTOR-15 [VS15] {text variation selector}

In regular unicode text rendering, VS15 is used to force the character to render as an emoji (colorful), while VS16 forces text-mode (monochrome).

πŸ˜Άβ€πŸŒ«οΈ is an emoji ZWJ sequence, so it's fine to render it in-game as 😢🌫️. I don't expect ZWJ sequences to be supported, as that would be too much work.

β€”

I have been testing this mostly in 23w17a. This issue is unrelated to the new font.

Linked issues

Attachments

Comments 4

Does this apply to 1.19.4, or was that a mistake?

Same applies in 1.19.4, only difference is that some emoji images are not available. I've updated the attached images with a repro in 1.19.4.

Appears to affect 24w45a

Susko3

(Unassigned)

Confirmed

Platform

Normal

Text

1.19.4, 23w17a, 23w18a, 1.20.6, 24w45a

Retrieved