View Issue Details
|ID||Project||Category||View Status||Date Submitted||Last Update|
|0020134||phpList 3 application||Interface - Backend||public||17-12-19 21:05||02-01-20 14:26|
|Priority||normal||Severity||minor||Reproducibility||have not tried|
|Summary||0020134: utf8 support for campaign subject|
|Description||Hi 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.
|Tags||No tags attached.|
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.
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.
||You also need to alter the messagedata table because most of the message fields are duplicated there.|