Форум программистов, компьютерный форум, киберфорум
Visual Basic
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.74/19: Рейтинг темы: голосов - 19, средняя оценка - 4.74
0 / 0 / 0
Регистрация: 01.03.2010
Сообщений: 223

Перекодировка текста в почте. Base64, Quoted

13.04.2011, 16:27. Показов 3595. Ответов 5
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
вопрос следующего характера.
Есть почтовое сообщение со стандартными заголовками
но закодировано оно скажем Base64 ну или Quoted
как его в нормальную кодировку сконвертировать?

Спасибо
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
13.04.2011, 16:27
Ответы с готовыми решениями:

Чтение текста сообщения. И текста вложения к почте файла
Как читать текст сообщения письма mail И скачивания прикрепленного вложения к письму Добавлено через 18 часов 4 минуты Неужто ни...

Перекодировка текста
Здравствуйте! Есть такая задача: написать программу-конвертер. Есть исходный текст, и нужно при выборе одной из кодировок сделать ее....

Перекодировка текста
Приветствую. ;) На входе есть строка, содержащая символы такого вида: \u0418\u0433\u043d\u043e\u0440 На выходе нужно...

5
Comanche
13.04.2011, 17:46
Ясное дело как: используя мой пакет 'MailSuite For VB' ))))))
Входящая в него библиотека MessageParser не только MIME-шные вещи раскодирует, но и charset-ы, и аттачменты, и вообще - сделает из сырого текста сообщения конфетку!

Comanche
13.04.2011, 17:52
Вот он, кстати:
http://www.vbnet.ru/activex/activexdownload.asp?id=115
0 / 0 / 0
Регистрация: 01.03.2010
Сообщений: 223
14.04.2011, 10:36  [ТС]
тогда обьясняю суть проблемы.

стоит сервак MDaemon, на котором разрешен веб-доступ.
Когда заголовки и тело сообщения в одной кодировке - всё ОК.
иначе - лажа. в принципе, пользователи могут самостоятельно сменить кодировку и заголовка и сообщения (благо это доступно) и всё ОК, но на каждое сообщение этого делать совершенно не хочется.

вот я пишу софтину, которая каждое входящее сообщение будет просматривать на предмет наличия 'инородных' кодировок и конвертить в Win-1251.

ну так вот. допустим, с кодировками я разобрался, но я не могу найти описание, как конвертить Quoted и Base64 заголовки.

помогите пожалуйста. спасибо.
0
Comanche
14.04.2011, 12:29
Щас выдерну из DLL-ки функцию DecodeMessageHeader и куда-нить выложу. Жди.
Comanche
14.04.2011, 13:06
Ссылка:
http://formtoini.narod.ru/Down... Header.zip

Кратко о вызове функции:
Visual Basic
1
2
Public Function DecodeMessageHeader(ByVal inText As String, Optional ByVal headerIsAddress As Boolean = False, _
                                    Optional ByVal messageCharset As String = '') As String
inText - заголовок сообщения, который нужно раскодировать;

headerIsAddress - boolean-признак, что заголовок является каким-нибудь адресом (например, 'From', 'To', 'CC', 'DCC' и т.д.);

messageCharset - charset, в котором закодировано само сообщение; например, RELIB присылает уведомительные сообщения вот в таком виде:
Subject: RE: дЙБМПЗ ЧЩВПТБ ЛБФБМПЗБ
MIME-Version: 1.0
Content-Type: text/plain; charset='koi8-r'
Content-transfer-encoding: 8bit
Как видим, заголовок 'Subject' не выглядит как '=?koi8-r?B?RG9taW5vIMkg1C7ELg==?=', и тем не менее, он закодирован в KOI8-R. Вот для таких писем и служит аргумент messageCharset. Функция сначала ищет '=?koi8-r?...' в САМОМ заголовке, и если не находит, то смотрит на значение аргумента messageCharset - нет ли В НЁМ 'charset='koi8-r'. Если и в нём нет, то заголовок НЕ закодирован; если же есть - то берёт информацию о charset-е из аргумента messageCharset и раскодирует.

Пример вызова:
Visual Basic
1
2
3
4
5
6
7
st = '=?windows-1251?B?yu7s7+Dt6P8g?=Associates =?windows-1251?B?7/Do4+vg+ODl8iDt4CDi+/Hy4OLq8yA=?=Infosecurity-2004'
Debug.Print DecodeMessageHeader(st)
'
или (для РЕЛИБовских сообщений):
'
st = 'RE: ъБРХУЛ РТПЗТБННЩ У CD'
Debug.Print DecodeMessageHeader(st, , 'koi8-r')
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
14.04.2011, 13:06
Помогаю со студенческими работами здесь

Перекодировка текста
Здравствуйте! Не знаю в каком разделе создать тему, напишу здесь. Возникла такая ситуация: Перекодировала текст в UTF 8 и сохранила,...

Перекодировка текста
Здравствуйте! Не знаю в каком разделе создать тему, напишу здесь. Возникла такая ситуация: Перекодировала текст в UTF 8 и сохранила,...

Перекодировка текста
Здравствуйте! Есть такая задача: написать программу-конвертер. Есть исходный текст, и нужно при выборе одной из кодировок сделать ее....

Перекодировка текста в Word
Помогите пожалуйста разобраться. Нужно создать макрос что бы он перекодировал неправильный текст в правильный, в Worde. Так же в задании...

Перекодировка текста в Unicode
В программе получаю через сокетное соединение сообщение содержащие русский тект в кодировке cp1251. Надо перекодировать в уникод для вывода...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Новые блоги и статьи
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога Финальные проекты на Си и на C++: hello-sdl3-c. zip hello-sdl3-cpp. zip Результат:
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд. Даже если у вас. . .
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает монорепозиторий в котором находятся все исходники. При создании нового решения, мы просто добавляем нужные проекты и имеем. . .
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение: В этой книге («Подход, основанный на вариантах использования») Ивар утверждает, что архитектура программного обеспечения — это структуры,. . .
Управление камерой с помощью скрипта OrbitControls.js на Three.js: Вращение, зум и панорамирование
8Observer8 05.03.2026
Содержание блога Финальная демка в браузере работает на Desktop и мобильных браузерах. Итоговый код: orbit-controls-threejs-js. zip. Сканируйте QR-код на мобильном. Вращайте камеру одним пальцем,. . .
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip На первой гифке отладочные линии отключены, а на второй включены:. . .
SDL3 для Web (WebAssembly): Идентификация объектов на Box2D v3 - использование userData и событий коллизий
8Observer8 02.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-collision-events-sdl3-c. zip Сканируйте QR-код на мобильном и вы увидите, что появится джойстик для управления главным героем. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru