Nano Hash - криптовалюты, майнинг, программирование

Как отправить (закодировать) смайлики (или любой текст на иностранном языке) в теме Gmail API?

Я использую Gmail API в REACT NATIVE для отправки писем и использую библиотеку "js-base64" для кодирования сообщения MIME перед отправкой через API. Все работает нормально, но смайлики в теме не декодируются должным образом

Текст темы работает нормально, но эмодзи декодируются неправильно

(Отредактировано) Это API-вызов Gmail для отправки почты.

const sendEmail = async (message: ISendMessage) => {
  const data = JSON.stringify({
    raw: getMessageMime(message),
    threadId: message.threadId,
  });
  const response = await G_POST(data, SEND_EMAIL_URL, 'application/json');
  return response.data;
};

const getMessageMime = (message) => {
  let mail = [
    'Content-Type: multipart/alternative; boundary="foo_bar_baz"\r\n',
    'MIME-Version: 1.0\r\n',
    'To:' + message.to + '\r\n',
    'From:' + message.from + '\r\n',
    'Cc: ' + message.cc + '\r\n',
    'Bcc: ' + message.bcc + '\r\n',
    'References:' + message.inReplyTo + '\r\n',
    'In-Reply-To:' + message.inReplyTo + '\r\n',
    'Subject: ' + message.subject + '\r\n\r\n',
    '--foo_bar_baz\r\n',
    'Content-Type: text/plain; charset="UTF-8"\r\n',
    'MIME-Version: 1.0\r\n',
    'Content-Transfer-Encoding: 7bit\r\n\r\n',
    message.message + '\n\r\n',
    '--foo_bar_baz--',
  ].join('');

  mail = btoa(mail);
  return mail;
};

  • 😂😂😠вот как большинство смайликов декодируются в 20.05.2020
  • Привет @PraneethG! Не могли бы вы поделиться своим кодом, чтобы мы все могли посмотреть? Воспользуйтесь этой возможностью, чтобы просмотреть тур и узнать с чего начать, как задавать вопросы, как вы можете отформатируйте код и поделитесь минимально воспроизводимым примером с нами, чтобы мы могли помочь вам лучше. 21.05.2020
  • Пожалуйста, покажите ваш реальный код. То, что вы видите, это то, что происходит, когда возникают несоответствия кодировки. Например, когда эмодзи закодирован в UTF-8, а затем ошибочно интерпретируется как Latin-1. 22.05.2020
  • @RemyLebeau Я обновил код, спасибо 25.05.2020
  • Спасибо, что поделились кодом @PraneethG! После изучения ситуации у меня есть несколько вопросов. Gmail отображает смайлики по-разному в зависимости от места; на предмете он использует родной рендеринг навигатора, а в корпусе использует другую палитру. Чтобы избавиться от проблемы с навигатором, отправьте электронное письмо со строкой эмодзи ????⛎????????????????️‍♂️????♐ в теме и в корпусе. Чтобы предотвратить несоответствие кодировки, скопируйте и вставьте строку смайликов вместо того, чтобы выбирать их из меню смайликов. 27.05.2020
  • Отвечает ли это на ваш вопрос? Emoji не отображается в теме gmail 12.12.2020

Новые материалы

Кластеризация: более глубокий взгляд
Кластеризация — это метод обучения без учителя, в котором мы пытаемся найти группы в наборе данных на основе некоторых известных или неизвестных свойств, которые могут существовать. Независимо от..

Как написать эффективное резюме
Предложения по дизайну и макету, чтобы представить себя профессионально Вам не позвонили на собеседование после того, как вы несколько раз подали заявку на работу своей мечты? У вас может..

Частный метод Python: улучшение инкапсуляции и безопасности
Введение Python — универсальный и мощный язык программирования, известный своей простотой и удобством использования. Одной из ключевых особенностей, отличающих Python от других языков, является..

Как я автоматизирую тестирование с помощью Jest
Шутка для победы, когда дело касается автоматизации тестирования Одной очень важной частью разработки программного обеспечения является автоматизация тестирования, поскольку она создает..

Работа с векторными символическими архитектурами, часть 4 (искусственный интеллект)
Hyperseed: неконтролируемое обучение с векторными символическими архитектурами (arXiv) Автор: Евгений Осипов , Сачин Кахавала , Диланта Хапутантри , Тимал Кемпития , Дасвин Де Сильва ,..

Понимание расстояния Вассерштейна: мощная метрика в машинном обучении
В обширной области машинного обучения часто возникает необходимость сравнивать и измерять различия между распределениями вероятностей. Традиционные метрики расстояния, такие как евклидово..

Обеспечение масштабируемости LLM: облачный анализ с помощью AWS Fargate и Copilot
В динамичной области искусственного интеллекта все большее распространение получают модели больших языков (LLM). Они жизненно важны для различных приложений, таких как интеллектуальные..