Wrong character encoding when sending email from Android app

asked 2015-10-22 22:35:27 +0300

Fiery gravatar image

I've got an Android app that can send a long text as an email using Intent(Intent.ACTION_SEND) with setType("message/rfc822"). The long text is parsed properly, except for the \n (0x0A) characters at the end of each line. Those characters are parsed as "%0A" string to the email. Is this normal? And if it is, then can we expect a fix sometime? :)

The \n character issue is the most annoying, but there are other, minor issues as well, like wrong encoding of the percentage (%) character as "%25", and some strange character displayed instead of the degree symbol (\u00B0) and the multiplication sign (\u00D7).

My device is a Jolla Phone running the latest OTA Sailfish OS 1.1.9.28. The Android app in question is AIDA64, although I can see similar issues in other apps as well, e.g. CPU-Z for Android, so I'm pretty sure this is some sort of bug in the Android runtime. I'm using a Gmail account for my emails.

Thank you :)

edit retag flag offensive close delete

Comments

Update: I've updated the phone to Sailfish OS 2.0.0.10, and the \n character issue is already fixed. The % character is also properly displayed, but the degree symbol (\u00B0) and the multiplication sign (\u00D7) are still incorrect.

Also, I've just noticed one more bug: the long text that's shared in email is not entirely parsed into the email body. Only about 4600 characters are parsed, the rest of the text is not visible in the email. I've seen such limitations before on other mobile platforms, but not on Android :)

Fiery ( 2015-10-25 08:58:24 +0300 )edit

Update: I've updated the phone to Sailfish OS 2.0.1.11, and the degree symbol and multiplication sign issue are still there I'm afraid. I've managed to figure out why the emails are not fully parsed: the pound ("#") character causes the email body to break. Without that character in the email body even very long emails are properly parsed under Android.

Fiery ( 2016-06-14 12:38:58 +0300 )edit