Skip to content

ZWJ emoji as account symbol only shows the first element of the emoji #9669

Description

@PhoenixIV

Checklist

  • I have used the search function to see if someone else has already submitted the same bug report.
  • I will describe the problem with as much detail as possible.

App

Thunderbird for Android

App version

11.0

Where did you get the app from?

F-Droid

Android version

GrapheneOS 16 Build 2025081400

Device model

Pixel 9a

Steps to reproduce

  1. Go to Settings
  2. Edit one account
  3. General Settings
  4. Account name
  5. Put any ZWJ Emoji as the first character, e.g. 🐦‍🔥 (Phoenix)

Expected behavior

In the account overview the account symbol is the phoenix

Actual behavior

The account symbol is 🐦 (Bird, the first symbol of the ZWJ sequence)

In the settings the emoji is correctly displayed as phoenix.

Logs

The Phoenix emoji is a ZWJ sequence combining 🐦 Bird, Zero Width Joiner and 🔥 Fire. These display as a single emoji on supported platforms.

https://emojipedia.org/phoenix-bird

Note there can also be longer sequences like Family with two kids 👨‍👩‍👧‍👦

_

Let me say thank you for introducing the possibility to customise the account symbol with two letters or a single emoji.

Seems like the one emoji instead of two characters was even implemented purposefully instead of two emojis.

Activity

  1. bogomil commented on Aug 28, 2025

    @bogomil

    Maybe that's a feature request?

  2. added theissue type on Jan 28, 2026
  3. DmitryNekrasov commented on Oct 3, 2026

    @DmitryNekrasov

    The monogram is made of the first 2 UTF-16 chars of the name, so from the phoenix only the bird is left. Also, ValidateAvatarMonogram allows at most 3 chars, and the phoenix alone takes 5.

    I am working on utf8-string, a Kotlin Multiplatform string type that counts and iterates graphemes. It is my personal hobby and research project. With it, the monogram would be name.replace(" ", "").u8.graphemes.take(2).joinToString(""), and the check would count graphemes with monogram.u8.length. Would it be useful for you? And what API would you want to see?

  4. added
    good first issueIdeal for newcomers to start contributing
    and removed
    unconfirmedNewly reported issues awaiting triage or confirmation
    on Oct 8, 2026
  5. moved this from Backlog to In Review in Thunderbird for Android - Sprintson Oct 14, 2026
  6. changed the issue type fromtoon Oct 14, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Labels

good first issueIdeal for newcomers to start contributing

Fields

Estimate

None yet

Priority

None yet

Projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions