Signal-android: MMS threads do not properly display recieved emoji

Created on 13 Mar 2017  路  17Comments  路  Source: signalapp/Signal-Android

I have:


Bug description

When recieving an MMS message containing emoji, Signal instead displays unintelligible characters. I have experienced this in group messages and have replicated it by sending myself a picture and an emoji from a burner number. This is a duplicate of #6365 but with more information.

Steps to reproduce

  • use Signal for SMS and MMS
  • create an MMS conversation
  • recieve a message containing an emoji

Actual result: Signal displays a bubble with obscure symbols/tofu
Expected result: Signal displays the intended emoji

Screenshots

screenshot_20170312-201338

Device info

Device: Google Pixel XL
Android version: 7.1.1
Signal version: 3.30.4

Link to debug log

https://gist.github.com/c4adbc435e2a886ff8fe3cf8c7d5a964

emoji mms

Most helpful comment

I've seen this behavior for months now. I not only see this with emoji, but also with simplified chinese characters being sent to me via MMS, from people that are not using signal.

Regarding evantd's comment above: why is ISO the default encoding, and why is it not UTF-8? I don't know how often the charset for incoming messages is CharacterSets.MIMENAME_ANY_CHARSET, but I can't imagine any situations that ISO would be a better choice than UTF-8.

Device : motorola Nexus 6 (shamu)
Android : 7.0
App : Signal 4.9.8
Provider: ProjectFi

All 17 comments

I can confirm it occurs only with unsecured MMS messages. Secured MMS display emojis normally.

I can confirm this happens when receiving unsecured MMS (read: group messages from other people not using Signal) on my Nexus 5X, not sure if it happens on secured MMS. I am running Android 7.1.1, using Google Project Fi, and Signal 4.2.5

Any update on this? This is an issue that blocks adoption of signal- not being able to see emojis, as annoying as they are, from any unsecured sender is not good. As others have confirmed, this only impacts unsecured MMS, which, in a group text, there is a great chance of running into

Also having this issue. Very frustrating, as I would like to move to Signal as my only messenger. Running Signal 4.6.1, Project Fi, and Android 7.1.2.

I have had this issue for many months. Here are my debug logs from today.

Device : Huawei Nexus 6P (angler)
Android : 7.1.2 (3938523, N2G47W)
App : Signal 4.6.1
Provider: ProjectFi

Emoji sent:

:blush::notes::penguin::european_post_office::walking:  

:blush::notes::penguin::european_post_office::walking:

Chars received:

冒聼聵聤冒聼聨露冒聼聬搂冒聼聫芦冒聼職露

MMS @11:23am

Debug log

https://gist.github.com/anonymous/999d11fbdcae4ead9d2ed49c9eeadd33

Also:

:grinning::grin::joy:
:grinning::grin::joy:
冒聼聵聙冒聼聵聛冒聼聵聜

Me too: https://gist.github.com/0f25f0430f011d3ef394f1326a862360
Signal 4.6.1 on Nexus 6P running Android 7.1.2 with Google Fi service (such seems to be a theme in this issue)

I have the same issue. I'm seeing 冒聼聮聰 where emoji should be. I've also seen it on another Signal user's MMS with myself and a non-Signal user.

MMS with 1 other Signal user and two iPhone users.

Device : Google Pixel (sailfish)
Android : 7.1.2 (3888830, NHG47L)
Memory : 17M (4.38% free, 512M max)
Memclass: 256
OS Host : wphr11.hot.corp.google.com
App : Signal 4.7.4

Also having this issue.

Device : Nexus 5X
Android : 7.1.1
App : Signal 4.7.4
Provider: ProjectFi

Same issue. Seems like they wont fix it....

Device : Nexus 6p
Android : 7.1.2
App : Signal 4.7.4
Provider: ProjectFi

I submitted a request here (https://support.whispersystems.org/hc/en-us) about a month ago and corresponded a bit on the issue (shared more screenshots per their request). Stopped getting responses several weeks ago. Perhaps if more of us submit requests, the priority will move up. Worth a try.

I suspect the problem is that Google Fi is not specifying the character set, so PartParser.getMessageText is using its default (ISO). The code looks for an UnsupportedEncodingException, but the String constructor will only throw it if the specified charset is unsupported. The bytes being invalid in that charset will not cause it to be thrown. One possibility would be to default the character set to UTF8 rather than ISO. Another would be to detect when the bytes are invalid in ISO (presumably via Charset.forName(CharacterSets.MIMENAME_ISO_8859_1).newCharsetDecoder().onMalformedInput(CodingErrorAction.REPORT).onUnmappableCharacter(CodingErrorAction.REPORT)) and fall back to UTF8. I don't have any background in this codebase, MMS, or Android development in general, but that's my guess.

I've also seen this problem with non-emoji characters. An apostrophe came through garbled, and I'm guessing it's because it was a right single quote (which is encoded differently between ISO & UTF8) rather than the generic single quote (which is encoded the same way in both character sets). I'd love to see the default changed to UTF8, but another approach might be to petition Google Fi to explicitly set the encoding on their MMS messages.

Fi's response was, in a nice way at least, Tough luck. Tell the developers of Signal to fix it. If it works with the default Messages app, it's not their problem. I don't see Google Fi being much help with this.

I've seen this behavior for months now. I not only see this with emoji, but also with simplified chinese characters being sent to me via MMS, from people that are not using signal.

Regarding evantd's comment above: why is ISO the default encoding, and why is it not UTF-8? I don't know how often the charset for incoming messages is CharacterSets.MIMENAME_ANY_CHARSET, but I can't imagine any situations that ISO would be a better choice than UTF-8.

Device : motorola Nexus 6 (shamu)
Android : 7.0
App : Signal 4.9.8
Provider: ProjectFi

I created a pr (6965) to fix the initial pr that was reverted due to a typo. I've been testing it since yesterday, and I can finally get emojis in MMS on Project FI. Let's hope it gets accepted and merged.

Seeing this as well on Pixel/Fi. Thanks for the fix, looking forward to it

Was this page helpful?
0 / 5 - 0 ratings

Related issues

jult picture jult  路  3Comments

notthematrix picture notthematrix  路  3Comments

vvug picture vvug  路  3Comments

kwlg picture kwlg  路  3Comments

5boro picture 5boro  路  3Comments