View Issue Details

IDProjectCategoryView StatusLast Update
0020134phpList 3 applicationInterface - Backendpublic02-01-20 14:26
Reporterdmageiras Assigned To 
PrioritynormalSeverityminorReproducibilityhave not tried
Status newResolutionopen 
Product Version3.4.8 
Target Version3.4.9 
Summary0020134: utf8 support for campaign subject
DescriptionHi all!
Thanks for the excellent project. Campaign subject does not seem to support utf8, thus I cannot place emoticons. Emoticon open format (=?utf-8?q?=F0=9F=94=A8?=) seems to work when combined with latin characters, but it doesn't work when combined with greek characters. Using a solution for encoding both emoticons and greek chars (like this https://www.sendblaster.com/utf8-email-subject-encoder/) renders subject ok for the newsletter recipient, but campaigns list still shows the encoded text in the open format (like this =?UTF-8?B?8J+UpSDOnM ... IPCflKU=?=).
Campaign lists are messy with this long texts and confusing.
If you need further help on this feel free to contact me.
Sincerely,
DM
TagsNo tags attached.

Activities

duncanc

18-12-19 18:22

updater   ~0062911

This appears to be similar to https://mantis.phplist.org/view.php?id=20109

If you change the database to use utf8mb4 instead of utf8 then emojis should work. I think that the change needs to be applied at the colum level but you probably only need to change a few tables such as message and messagedata if you want to use emojis only in campaigns.

dmageiras

02-01-20 14:02

reporter   ~0062931

Just changed the database field subject to utf8mb4 like this: "alter table phplist_message change subject subject varchar(255) character set utf8mb4 collate utf8mb4_unicode_ci;"
but still the problem remains.

To be more exact:

- I copy an emoticon to subject line, the system sends a message with 4 question marks (????) in the subject line and it also stores four questions marks (????) to the column subject.
- I copy =?utf-8?q?=F0=9F=94=A8?= to the subject line. I get a message with a proper emoticon. The system stores =?utf-8?q?=F0=9F=94=A8?= to the database. The phplist backend display =?utf-8?q?=F0=9F=94=A8?=.
- I copy =?utf-8?q?=F0=9F=94=A8?= and any latin charaters (let's say: =?utf-8?q?=F0=9F=94=A8?= TEST). The message sent has a proper emoticon and the word TEST as expected. The database and the backend display =?utf-8?q?=F0=9F=94=A8?= TEST.
- I copy =?utf-8?q?=F0=9F=94=A8?= TEST and some greek characters (=?utf-8?q?=F0=9F=94=A8?= TEST ΑΒΓΔ). The message sent has not an emoticon any more.

duncanc

02-01-20 14:26

updater   ~0062932

You also need to alter the messagedata table because most of the message fields are duplicated there.