То есть по замыслу. Когда свойство ContentType
устанавливается, установщик свойств может обновить свойство CharSet
значением по умолчанию, если входные данные явно не указывают кодировку. Определенные типы контента, особенно в области text/
, имеют определенные значения по умолчанию для набора символов, заданные в различных RFC. Инди пытается следовать этим правилам, как может. Таким образом, вам нужно установить свойство CharSet
в соответствии с вашим предполагаемым значением после того, как вы установили свойство ContentType
, как вы уже обнаружили:
//LMsg.CharSet := 'UTF-8';
LMsg.ContentType := 'text/plain';
LMsg.CharSet := 'UTF-8';
Вы также можете сделать это вместо:
LMsg.ContentType := 'text/plain; charset=UTF-8';