Do chat apps change your emoji? A 4-app test
An emoji is not one character. A thumbs-up with a skin tone is two code points, a family is seven, and the Scotland flag is seven more. We wanted to know whether chat apps deliver those sequences as sent. On 4 November 2026 we pasted the same 15 emoji into the web versions of Discord, Telegram, WhatsApp and Slack, sent them to ourselves, then copied the message back and compared it with the original, code point by code point.
The short version: Discord and Telegram gave back exactly what we sent. WhatsApp added an invisible character to two of them. Slack gave back text like :+1::skin-tone-4: instead of the emoji when we copied the message. And three of the four apps couldnโt draw the newest emoji yet.
Key findings
- In our 4 November 2026 test, copying a message from Slackโs web app gave Slack shortcodes such as
:+1::skin-tone-4:and:rainbow-flag:instead of the emoji characters, for every emoji Slack recognised. - Discord and Telegram Web returned all 15 test emoji byte-for-byte identical when the message was copied back.
- WhatsApp Web added the invisible variation selector U+FE0F to a bare heart (U+2764) and a bare smiley (U+263A), turning them into colour emoji.
- Emoji 17.0 and 18.0 characters arrived intact in all four apps, but Discord, WhatsApp and Slack showed them as plain text in the system font instead of their own emoji artwork.
- Apart from Slackโs shortcodes, every app kept skin tones, zero-width-joiner (ZWJ) sequences and the Scotland tag-sequence flag intact.
Results
| App | Copied back | Changed | Own artwork for Emoji 17 and 18 |
|---|---|---|---|
| Discord | Identical | Nothing | No (system font) |
| Telegram | Identical | Nothing | Uses the system font for all emoji |
| 2 of 15 changed | U+FE0F added to โค and โบ | No (system font) | |
| Slack | 13 of 15 became shortcodes | Every recognised emoji copied as :name: | No (left as plain text) |
Slack copies shortcodes, not emoji
Slack stores emoji by name. When we selected our message and pressed Cmd+C, the clipboard held T01 :+1::skin-tone-4: | T02 :female-technologist: | โฆ. Paste that into an email, a document or another chat app and the reader sees the words, not the emoji. Slack also mapped the bare heart to :heart: and the bare smiley to :relaxed:, so both came back as their colour versions. The two newest emoji, which Slack doesnโt know yet, were the only ones copied as real characters.
If you need the real characters from Slack, copy them from the original source instead, or look the shortcode up and copy the emoji from its page here, for example ๐ thumbs up.
WhatsApp adds U+FE0F
Some older symbols, like โค (U+2764) and โบ (U+263A), can display as plain text or as a colour emoji. The invisible variation selector U+FE0F asks for the emoji version. WhatsApp added it to both, so they arrive as colour emoji even if you sent the plain-text version. Usually thatโs what you want. It matters if you compare text exactly or count characters, because the string is now one code point longer per symbol.
The newest emoji arrive, but as plain text
Our Emoji 17.0 and 18.0 test characters (๐ซช and ๐ซซ) reached every app intact, but Discord, WhatsApp and Slack have no artwork for them yet, so each app showed them in the deviceโs own font. On a phone or computer without Emoji 17 or 18 support, that means an empty box. Emoji 16.0 (๐ซฉ) already had artwork in Discord, WhatsApp and Slack. Before using a brand-new emoji, check the new emoji list and expect older devices to show a box for a while.
The 15 test emoji
| Case | Emoji | What it tests | Code points |
|---|---|---|---|
| T01 | ๐๐ฝ | Skin tone | 1F44D 1F3FD |
| T02 | ๐ฉโ๐ป | ZWJ profession | 1F469 200D 1F4BB |
| T03 | ๐จโ๐ฉโ๐งโ๐ฆ | ZWJ family | 1F468 200D 1F469 200D 1F467 200D 1F466 |
| T04 | ๐ณ๏ธโ๐ | Rainbow flag | 1F3F3 FE0F 200D 1F308 |
| T05 | ๐ฎ๐ณ | Country flag | 1F1EE 1F1F3 |
| T06 | ๐ด๓ ง๓ ข๓ ณ๓ ฃ๓ ด๓ ฟ | Subdivision flag (Scotland) | 1F3F4 E0067 E0062 E0073 E0063 E0074 E007F |
| T07 | โค๏ธ | Heart with U+FE0F | 2764 FE0F |
| T08 | โค | Heart without U+FE0F | 2764 |
| T09 | 1๏ธโฃ | Keycap | 0031 FE0F 20E3 |
| T10 | ๐ง๐ฝโ๐คโ๐ง๐ป | Two skin tones | 1F9D1 1F3FD 200D 1F91D 200D 1F9D1 1F3FB |
| T11 | ๐ถโโก๏ธ | Direction (Emoji 15.1) | 1F6B6 200D 27A1 FE0F |
| T12 | ๐ซฉ | Emoji 16.0 | 1FAE9 |
| T13 | ๐ซช | Emoji 17.0 | 1FAEA |
| T14 | ๐ซซ | Emoji 18.0 | 1FAEB |
| T15 | โบ | Text-style smiley | 263A |
How we tested
- Apps: the web versions of Discord, Telegram (Web A), WhatsApp and Slack in Brave on macOS, on 4 November 2026. Each message went to our own chat: a private Discord server, Telegram Saved Messages, WhatsApp โMessage yourselfโ and a Slack direct message to ourselves.
- Sending: all 15 emoji in one message, pasted rather than typed, because typing emoji sequences character by character can trigger an appโs own autocomplete.
- Checking: we selected the sent message, pressed Cmd+C, read the system clipboard and compared it with the original code point by code point. We also recorded which emoji each app drew with its own artwork.
- Data: the test cases and each appโs raw result and copied text: Discord, Telegram, WhatsApp, Slack (copied text: slack-copied.txt).
Mobile apps can behave differently from the web versions, and apps update their emoji support without notice. This is one test on one day, so check again before relying on it.