Let's take this Subject line,
$ echo -n 台電用戶意見電子信箱-信件受 | base64
5Y+w6Zu755So5oi25oSP6KaL6Zu75a2Q5L+h566xLeS/oeS7tuWPlw==
It (along with "Subject:" etc.) exceeds the limits when encoded. So, some mailers (a certain power company's) first encode it, then split it:
Subject: =?utf-8?B?5Y+w6Zu755So5oi25oSP6KaL6Zu75a2Q5L+h566xLeS/oeS7?=
=?utf-8?B?tuWPl+eQhumAmuefpQ==?=
(But that might easily "fracture" a UTF-8 multibyte character.)
Other mailers (e.g., Gnus) first split it, then encode it:
Subject: =?utf-8?B?5Y+w6Zu755So5oi25oSP6KaL6Zu75a2Q5L+h566xLeS/oeS7tg==?=
=?utf-8?B?5Y+X55CG6YCa55+l?=
The latter is guaranteed to be rendered correctly in all mail readers of today.
My question is, who is at fault that some mail readers (e.g., Gmail android app) choke on the former?
Should mail readers always first paste the two strings together, then decode? (So Gmail app is wrong.)
Or is it also OK to first decode, then paste the two decoded strings together. (So the mailer software is wrong?)
(I assume the same issue occurs for Quoted Printable too, not only Base64.)
Indeed, if you think about it, Saying =?utf-8?B?...?=
means that ...
stuff should be a valid UTF-8 string, (on its own,) right? So the mailer software is wrong!
Likewise, there probably has never been a syntax defined for how to split =?utf-8?B?...?=
into two phrases, as that should have been taken care of beforehand, as creating the =?utf-8?B?...?=
string should always be the final step.
So: Mailer software: GUILTY. Gmail: NOT GUILTY.