Преобразование «извлеченных данных по IMAP» в кодировку UTF-8 во флаттере - PullRequest
0 голосов
/ 26 марта 2020

Я использую пакет достаточное количество_почты для извлечения данных по IMAP.

После извлечения данных, например, заголовков, с помощью следующего кода извлеченные данные из-за символов Turki sh выглядят странно.

    var client  = enoughMail.ImapClient(isLogEnabled: true);
    await client.connectToServer('mail.imap.com', 993, isSecure: true);
    var loginResponse = await client.login('mail-address@test-mail.com', 'passwordHere');
    var client  = enoughMail.ImapClient(isLogEnabled: true);

    if (loginResponse.isOkStatus) {
      var listResponse = await client.listMailboxes();
      if (listResponse.isOkStatus) {

        // print('mailboxes: ${listResponse.result}');


      // Select MailBox
      await client.selectMailbox( listResponse.result[0]);

      // mail count
      print(listResponse.result[0].messagesExists);

      var testVar3 = await client.fetchMessages(1, 7, "BODY.PEEK[HEADER.FIELDS (SUBJECT)]");

      print(testVar3.result[0]);

Я пытаюсь найти способ конвертировать их в кодировку UTF-8, но не смог.

Возможные варианты, которые, я думаю, находятся внутри

  • достаточное_почта пакет EncodingsHelper Class или
  • dart: convert или оба вместе ...

Кроме того, если я использую другой пакет Flutter, который называется imap_client, я получу строку ниже:

Строка, которую я получаю с сервера: =? Utf-8? B? TWljcm9zb2Z0IE91dGxvb2sgU8SxbmFtYSDEsGxldGlzaQ ==? =

На самом деле, я должен был получить S Microsoft İletisi

Мне нужен конвертер символов Base64 в Utf-8, а также =? Utf-8? B? Строка создает еще одну проблему для обработки этого действия.

Заранее спасибо.

Примечание: Пожалуйста, не говорите, чтобы изменить код на стороне сервера, потому что это не так, как мне нужно ...

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...