twitchdev / issues

Issue tracker for third party developers.
Apache License 2.0
73 stars 6 forks source link

Impossible to post combined emojis in chat #307

Open TETYYS opened 3 years ago

TETYYS commented 3 years ago

Brief description \u200D is impossible to post in chat because the character gets filtered out

How to reproduce Post 👨‍🌾

Expected behavior See 👨‍🌾. Posting it also gives false impressions in webchat because it gets rendered properly immediately client-side, but all other chatters see broken emojis.

Screenshots WindowsTerminal_Z5WgpsAWEH (left is poster, right is viewer)

lleadbet commented 3 years ago

Ticketed internally as MES-5018.

Mm2PL commented 3 years ago

It's also impossible to post some flags, for example Scotland: expected: 🏴󠁧󠁢󠁳󠁣󠁴󠁿, actual: 🏴. These apparently use different characters than ZWJ (U+200D).

ErisApps commented 3 years ago

@lleadbet Any news on this issue?

I also recently opened a UserVoice regarding this issue, and also stumbled upon this post shortly after posting said UserVoice.

Anyways, this issue affects roughly 37,8% (1329 out of 3512) of all Unicode 13.1 specified emojis. Attached also an extract of the ones that are affected due to \u200D being filtered out. (Full list of emotes can be found here: https://www.unicode.org/Public/emoji/13.1/emoji-test.txt ) BrokenEmojisOnTwitch.txt

ErisApps commented 3 years ago

It's also impossible to post some flags, for example Scotland: expected: 🏴󠁧󠁢󠁳󠁣󠁴󠁿, actual: 🏴. These apparently use different characters than ZWJ (U+200D).

Regarding this issue. I could easily reproduce this myself by sending the flag of either England, Scotland or Wales and intercepting the websocket response in another browser.

It seems like for those 3 emotes, all modifiers get stripped, leaving only \u1F3F4, which represents a bare black flag instead. Below also the full sequence of each flag respectively (which can also be found in the full emoji-test.txt document linked in my previous post)

subgroup: subdivision-flag

1F3F4 E0067 E0062 E0065 E006E E0067 E007F ; fully-qualified # 🏴󠁧󠁢󠁥󠁮󠁧󠁿 E5.0 flag: England 1F3F4 E0067 E0062 E0073 E0063 E0074 E007F ; fully-qualified # 🏴󠁧󠁢󠁳󠁣󠁴󠁿 E5.0 flag: Scotland 1F3F4 E0067 E0062 E0077 E006C E0073 E007F ; fully-qualified # 🏴󠁧󠁢󠁷󠁬󠁳󠁿 E5.0 flag: Wales

Felanbird commented 2 years ago

@lleadbet @jbulava Do you mind looking into this ticket? It seems the issue has been resolved, but whether or not it's intentional or a side-effect of another change is unknown.

ErisApps commented 2 years ago

It's also impossible to post some flags, for example Scotland: expected: 🏴󠁧󠁢󠁳󠁣󠁴󠁿, actual: 🏴. These apparently use different characters than ZWJ (U+200D).

Regarding this issue. I could easily reproduce this myself by sending the flag of either England, Scotland or Wales and intercepting the websocket response in another browser.

It seems like for those 3 emotes, all modifiers get stripped, leaving only \u1F3F4, which represents a bare black flag instead. Below also the full sequence of each flag respectively (which can also be found in the full emoji-test.txt document linked in my previous post)

subgroup: subdivision-flag

1F3F4 E0067 E0062 E0065 E006E E0067 E007F ; fully-qualified # 🏴󠁧󠁢󠁥󠁮󠁧󠁿 E5.0 flag: England 1F3F4 E0067 E0062 E0073 E0063 E0074 E007F ; fully-qualified # 🏴󠁧󠁢󠁳󠁣󠁴󠁿 E5.0 flag: Scotland 1F3F4 E0067 E0062 E0077 E006C E0073 E007F ; fully-qualified # 🏴󠁧󠁢󠁷󠁬󠁳󠁿 E5.0 flag: Wales

Emojis that rely on the ZWJ (U+200D) character, do seem to work properly now (or at least the few that I used to test). However, the 3 flag emojis above seemingly still don't work, they still get their additional modifiers stripped.

jbulava commented 2 years ago

@Felanbird Yes, the internal tracking ticket that was mentioned above was resolved 2 weeks ago. So it was an intentional fix.

@ErisApps I will raise the flag (pun intended) issue with the chat team in case there are some further intricacies to look into. Thanks.

Xemdo commented 1 year ago

Noting that the issue for the Scotland flag still exists. We're currently investigating this.

Xemdo commented 1 year ago

Ticketed internally (again) as CFC-9244