Try executing the following command: notify-send "abcd <z efgh" The displayed notification will only include "abcd" part. It looks like the notification is interpreted somehow (possibly as HTML or XML) while it is expected to be plain text to be reproduced as is. This affects applications such as Thunderbird, which may display new email notifications where the message contains email title, which can have special characters like "<".
Notification server provides the "body-markup" capability which means notifications must be HTML-escaped.
Is this "body-markup" a KDE-specific feature (i.e. not mandated by the underlying protocol or specification)? If so, I think applications cannot be expected to perform escaping, certainly not non-KDE ones.
No, it is part of the freedesktop notification specification also used by others, such as Gnome. A server has to query the capabilities of the server before using it, cf.: qdbus org.freedesktop.Notifications /org/freedesktop/Notifications org.freedesktop.Notifications.GetCapabilities Google Chrome as a non-KDE application does, for instance, and will escape when "body-markup" is present, or send plain-text if not. Please file a bug report against the offending application.
I see. Thanks for the clarification.