Portions of this patch, but not the Unicode normalization have been applied or otherwise addressed in MM versions 2.1.6 through 2.1.15.
I intend to deal with the spirit of the rest by converting the headers to the cset of the list's preferred language using encode(errors='backslashreplace') instead of encode(errors='replace'). In this way, these characters will be converted to '\uxxxx' escapes rather than '?', and header_filter_rules patterns can be constructed to match them.
Portions of this patch, but not the Unicode normalization have been applied or otherwise addressed in MM versions 2.1.6 through 2.1.15.
I intend to deal with the spirit of the rest by converting the headers to the cset of the list's preferred language using encode( errors= 'backslashrepla ce') instead of encode( errors= 'replace' ). In this way, these characters will be converted to '\uxxxx' escapes rather than '?', and header_filter_rules patterns can be constructed to match them.