Delphi версия 2007, читающая кириллицу с помощью TIdMessage - PullRequest
0 голосов
/ 02 ноября 2018

Мы создали почтовый сервис, который читает электронные письма (из IMAP) и помещает их в таблицу в базе данных. И это работает для немецкого / английского текста, но теперь я хочу получать все другие электронные письма, такие как кириллица или китайский тоже. Но символы, которые я получаю, выглядят примерно так: поново Đ Đ Ń Ń Đ ŃŃ ŃŃ Đ Đ ĐĽ ĐĽ ĐĽ even even even * * *..

Мы используем объекты ADO для хранения данных в базе данных, и тип столбца для этих полей объявляется как nvarchar, а также параметры хранимой процедуры, которая используется для загрузки этих данных, также nvarchar.

Я предполагаю, что это проблема с Delphi 2007, но все же я читал в некоторых постах, что Delphi 2007 поддерживает Unicode (если мне нужен Unicode). Итак, кто-нибудь знает, как читать электронную почту с помощью кириллицы и сохранять ее в таблице mssql?

Чтобы получить текст из IdMessage, я использую IdMessage.Body.Text

Спасибо, Деян

И INDY версия 10.1.5

1 Ответ

0 голосов
/ 02 ноября 2018

Мне удалось заставить его работать с помощью функции UTF8Decode.

Я проверил его с кодировками UTF-8 и ANSI, и он работает в обоих случаях (конечно, ANSI будет выдавать? В местах символов Unicode).

объявить BodyText и тему как WideStrings

после этого просто используйте:

BodyText := UTF8Decode(IdMessage.Body.GetText)
...