Целью MIME является обеспечение поддержки произвольных типов контента и кодировок. Пока контент правильно помечен в заголовках MIME, вы можете использовать любую кодировку, которая вам подходит. Для вашего варианта использования нет единого правильного кодирования; хотя в наши дни и в самое последнее время самым простым решением является использование Unicode для всего.
В условиях MIME вы должны использовать что-то вроде Content-Type: text/plain; charset="utf-8"
, а затем соответствующим образом кодировать основной текст. Если вам нужно, чтобы почта была 7-битной, вы можете использовать кодировку Content-trasfer с кавычками или base64 сверху, но любая современная библиотека MIME должна позаботиться об этой детали для вас.
Объекты HTML, которые вы наблюдали в своем эксперименте, не подходят для текстовых сообщений электронной почты, хотя они являются жизнеспособной альтернативой для электронной почты с чистым HTML. (Если ваш клиент электронной почты использовал их в текстовых сообщениях электронной почты, он будет работать только в том случае, если отправитель и получатель имеют одинаковый баг.)
Традиционно японские почтовые сообщения будут использовать одно из японских кодировок, Shift_JIS или ISO-2022-JP. Они имеют разумную поддержку для английского языка, но плохо обобщают текст на многоязычном языке (хотя ISO-2022 каким-то образом поддерживает его). В отличие от Unicode, смешивание японского языка, например, Персидский, узбекский и турецкий языки просты и бесхарактерны.
Использование UTF-8 от C является простым и в основном прозрачным. См. http://utf8everywhere.org/ для некоторых отправных точек.
Это [HTML-сущности] (http://www.w3schools.com/html/html_entities.asp) (также читается о [символьных ссылках в Википедии] (https://en.wikipedia.org/wiki/Character_encodings_in_HTML# Character_references). Число - это [Юникод] (https://en.wikipedia.org/wiki/Unicode) [кодовая точка] (https://en.wikipedia.org/wiki/Code_point). Вы не можете использовать их для нормального вывода, например, 'stdout' в вашей программе, если только ваш терминал не справляется с этим (что маловероятно). Вероятно, вам удастся попытаться распечатать [UTF-8] (https://en.wikipedia.org/wiki/UTF-8) закодированные символы (в зависимости от системы и терминала) –
Спасибо, я не печатаю данные на терминале. Я хочу создать электронную почту с несколькими наборами символов, это может помочь. – Pravin