• Напоминаем, что 1 марта стартует курс "Тестирование Веб-Приложений на проникновение" от команды codeby. Общая теория, подготовка рабочего окружения, пассивный фаззинг и фингерпринт, активный фаззинг, уязвимости, пост-эксплуатация, инструментальные средства, Social Engeneering и многое другое. Подробнее ...

Проблема MIME потеря форматирования

oshmianski

oshmianski

Достойный программист
Lotus team
25.04.2012
636
33
Доброго времени,

Имеем RTF с поднятой галочкой "Store contents as HTML and MIME".

Имеем значение этого поля:
MIME_PART_HAS_HEADERS
MIME_PART_BODY
ByteCount: 339
Boundary: ""
Headers: "Content-Type: text/html;charset=UTF-8

"
Body: "<p dir="ltr"><span style="font-family: arial,helvetica,sans-serif;"><span style="font-size: 12px;">ðƒÐÇð©ð▓ðÁÐéÔÇïÔÇï</span></span></p>
<br /><br />ð×Ðéð▓ðÁÐéÐüÐéð▓ðÁð¢ð¢Ðïð╣: ðÆð©ð¢ÐåðÁð╗ð¥ð▓ð©Ðç ðí. ðÿ.<br />ðúÐçÐÇðÁðÂð┤ðÁð¢ð©ðÁ: ðóðÁÐüÐéð¥ð▓Ðïð╣ ð¥ð┐ð¥ÐÇð¢Ðïð╣ ð¥ð▒ÐèðÁð║Ðé ð¥Ðé 18.07.2018<br />"

После обработки документа (чтение значения из этого поля и сохранение документа при session.ConvertMime = True) в UI Notes имеем значение:
MIME_PART_HAS_HEADERS
MIME_PART_BODY
ByteCount: 380
Boundary: ""
Headers: "Content-Type: text/html; charset="KOI8-R"
Content-Transfer-Encoding: base64

"
Body: "PHNwYW4gc3R5bGU9IiBmb250LXNpemU6OXB0O2ZvbnQtZmFtaWx5OkFyaWFsIj7w0snXxdQmIzgy
MDM7JiM4MjAzOzwvc3Bhbj4NCjxicj48c3BhbiBzdHlsZT0iIGZvbnQtc2l6ZToxMnB0Ij48YnI+
DQo8YnI+DQrv1NfF1NPU18XOztnKOiD3yc7DxczP18neIPMuIOkuPGJyPg0K9d7SxdbExc7JxTog
9MXT1M/X2cogz9DP0s7ZyiDPwt/Fy9Qgz9QNCjE4LjA3LjIwMTg8L3NwYW4+DQo=
"

если раскрыть base64, то имеем:
<span style=" font-size:9pt;font-family:Arial">Привет&#8203;&#8203;</span>
<br><span style=" font-size:12pt"><br>
<br>
Ответственный: ТУТ_ФИО<br>
Учреждение: Тестовый опорный объект от
18.07.2018</span>


Вопросы:
1. Почему меняется кодировка?
2. Почему преобразуется в base64?
3. Почему коверкается содержимое (меняется html разметка, стили)?
 
oshmianski

oshmianski

Достойный программист
Lotus team
25.04.2012
636
33
oshmianski

oshmianski

Достойный программист
Lotus team
25.04.2012
636
33
это оно все и делает
Хорошо, тогда другой вопрос.
Если сделать session.ConvertMime = False, то как значение одного rtf (MIME) запихнуть в другое rtf (native), т.е. как html преобразовать в rtf?
 
lmike

lmike

нет, пердело совершенство
Lotus team
27.08.2008
7 286
446
У меня ж уже все в MIME, зачем еще что-то делать?

вот после сохранения документа и меняется. или я не совсем понимаю термин "стадия"?
правильно, но есть уверенность что до сохранения там уже не кракозябры?
 
lmike

lmike

нет, пердело совершенство
Lotus team
27.08.2008
7 286
446
Хорошо, тогда другой вопрос.
Если сделать session.ConvertMime = False, то как значение одного rtf (MIME) запихнуть в другое rtf (native), т.е. как html преобразовать в rtf?
это очень может зависеть от задачи, но прямой конвертации нет и получается - никак
 
oshmianski

oshmianski

Достойный программист
Lotus team
25.04.2012
636
33
правильно, но есть уверенность что до сохранения там уже не кракозябры?
кракозяблы то меня не особо волнуют, а вот потеря html форматирования (с документами в основном работают в вебе) удручает :-(
 
oshmianski

oshmianski

Достойный программист
Lotus team
25.04.2012
636
33
Есть две системы (бд) - с одной работают в вебе, вторая только Notes.
Пользователь второй бд из толстого клиента создает копию содержания документа из одной системы в другую.
 
lmike

lmike

нет, пердело совершенство
Lotus team
27.08.2008
7 286
446
Есть две системы (бд) - с одной работают в вебе, вторая только Notes.
Пользователь второй бд из толстого клиента создает копию содержания документа из одной системы в другую.
подозреваю "наследуемую" систему и предлагать изменить подход даже не буду ;)
решения с сохранением форматирования завязаны на адекватный рендерер содержимого (как в веб так и в нотусне), в нотусне его нет (и, полагаю, уже не будут делать) :(
 
Мы в соцсетях: