Мы написали программу Delphi, которая отправляет некоторую информацию с помощью CDO.
На моей машине Win7 (венгерская) акценты работают нормально.
Так что, если я отправил письмо с "ÁÉÍÓÖŐÚÜŰ", я получил его в этом формате. Я использовал кодировку iso-8859-2 в теле, и это кодирует тему и адреса электронной почты (адрес отправителя содержит имя).
Я думал, что закончил с этим.
Но когда я пытаюсь отправить почту с англоязычной машины Win2k3 (почтовый сервер тот же!), результат обрезает некоторые акценты: Ű = U Ő = O
Затем я попытался использовать кодировку UTF-8 здесь.
Это дало акценты - но неправильные акценты.
Почта содержит диакритические знаки со знаком ^.
ê <> é
Это недопустимая венгерская буква... :-(
Поэтому я хочу знать, как преобразовать или настроить ввод, чтобы получить хороший результат.
Я попытался зарегистрировать тело, чтобы увидеть изменения...
Log(SBody);
Msg.Body := SBody;
Log(Msg.Body);
... или нет.
Но эти журналы дают хороший результат, ввод хороший.
Так что возможно потерянное и неправильно преобразованное сообщение на CDO.
Могу ли я помочь CDO, если смогу закодировать текст ANSI в настоящий UTF. Но в функциях конвертера Delphi нет параметров "CodePage". В Python я могу сказать:
s.encode('iso-8859-2')
or
s.decode('iso-8859-2')
Но в Delphi я не вижу этого параметра.
Кто-нибудь знает, как сохранить акценты, как преобразовать акцентированные венгерские строки, чтобы сохранить их акцентированный формат?
И я хочу знать, могу ли я проверить результат, не отправляя почту?
Спасибо за помощь: дд