|
|
|
Трудности перевода... Или как корректно раскодировать header.subject в Synapse
|
|||
|---|---|---|---|
|
#18+
Всем привет! Применяю Synapse для декодирования сообщений электронной почты. В целом все норм, но порой он не очень корректно конвертирует именно тему письма, а совсем редко, но ошибается и с кодировкой тела письма. Сейчас острее стоит проблема именно с темой. Если подробнее - в веб-почте все норм: "Fw: ειδωλον философы", а после обработки в методе InlineDecode модуля mimeinln, строка превращается в: "Fw: _______ философы" (вопросы или нижнее подчеркивание). Проблема возникает в строке конверсии s := CharsetConversion(s, ichar, CP) : Код: pascal 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51. 52. 53. 54. 55. 56. 57. 58. 59. 60. 61. 62. 63. 64. 65. 66. 67. 68. 69. 70. 71. Предыдущая строка s := DecodeQuotedPrintable(s) отрабатывает корректно. Проверил получившуюся строку через онлайн-конвертор, который определил автоматически преобразование из windows-1251 в utf-8: http://www.online-decoder.com/ru. И в итоге выдав верное значение: "Fw: ειδωλον философы". Пробовал различные методы от TEncode (у меня XE7 и D10.2 Токио), но нужного результата не получил. Есть какие то идеи как заменить CharsetConversion(s, ichar, CP) ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.01.2021, 15:56 |
|
||
|
Трудности перевода... Или как корректно раскодировать header.subject в Synapse
|
|||
|---|---|---|---|
|
#18+
SoftologicЕсли подробнее - в веб-почте все норм: Забей на веб-почту, посмотри прямо в исходник заголовков письма. Потом на этой строке сможешь отлаживаться. Может, там RFC вообще нарушено или строка кодировки не в списке синапса. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.01.2021, 16:06 |
|
||
|
Трудности перевода... Или как корректно раскодировать header.subject в Synapse
|
|||
|---|---|---|---|
|
#18+
Softologic веб-почте все норм: "Fw: ειδωλον философы", а после обработки в методе InlineDecode модуля mimeinln, строка превращается в: "Fw: _______ философы" Ну так не обрабатывай "в методе InlineDecode". Оставь так, как было до обработки. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.01.2021, 16:08 |
|
||
|
Трудности перевода... Или как корректно раскодировать header.subject в Synapse
|
|||
|---|---|---|---|
|
#18+
вот изначальная строка, еще до s := DecodeBase64(su): '=?utf-8?B?Rnc6IM61zrnOtM+JzrvOv869INGE0LjQu9C+0YHQvtGE0Ys=?=' ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.01.2021, 16:22 |
|
||
|
Трудности перевода... Или как корректно раскодировать header.subject в Synapse
|
|||
|---|---|---|---|
|
#18+
ъъъъъ Softologic веб-почте все норм: "Fw: ειδωλον философы", а после обработки в методе InlineDecode модуля mimeinln, строка превращается в: "Fw: _______ философы" Ну так не обрабатывай "в методе InlineDecode". Оставь так, как было до обработки. Так если не обрабатывать, то после декодирования base64 она превращается в : 'Fw: ОµО№ОґП‰О»ОїОЅ философы' ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.01.2021, 16:26 |
|
||
|
Трудности перевода... Или как корректно раскодировать header.subject в Synapse
|
|||
|---|---|---|---|
|
#18+
Softologic Так если не обрабатывать, то после декодирования base64 она превращается в : 'Fw: ОµО№ОґП‰О»ОїОЅ философы' Вы понимаете, что декодинг из base64 дает бинарные данные. У вас должен быть такой код Код: pascal 1. 2. 3. 4. 5. 6. 7. Какой именно TEncoding использовать определяется отдельно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.01.2021, 16:36 |
|
||
|
Трудности перевода... Или как корректно раскодировать header.subject в Synapse
|
|||
|---|---|---|---|
|
#18+
Собственно задача то в том, чтобы "Fw: ОµО№ОґП‰О»ОїОЅ философы" замастырить в "Fw: ειδωλον философы" каким то образом, но я не особо в кодировках и методах пока понимаю.. Недавно только начал миграцию проектов с Delphi7 на XE7 и Токио. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.01.2021, 16:38 |
|
||
|
Трудности перевода... Или как корректно раскодировать header.subject в Synapse
|
|||
|---|---|---|---|
|
#18+
Softologic Собственно задача то в том, чтобы "Fw: ОµО№ОґП‰О»ОїОЅ философы" замастырить в "Fw: ειδωλον философы" Задача звучит так: трансформировать строку '=?utf-8?B?Rnc6IM61zrnOtM+JzrvOv869INGE0LjQu9C+0YHQvtGE0Ys=?=' в "ειδωλον философы" ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.01.2021, 16:44 |
|
||
|
Трудности перевода... Или как корректно раскодировать header.subject в Synapse
|
|||
|---|---|---|---|
|
#18+
_Vasilisk_ Softologic Так если не обрабатывать, то после декодирования base64 она превращается в : 'Fw: ОµО№ОґП‰О»ОїОЅ философы' Вы понимаете, что декодинг из base64 дает бинарные данные. У вас должен быть такой код Код: pascal 1. 2. 3. 4. 5. 6. 7. Какой именно TEncoding использовать определяется отдельно. _Vasilisk_, Теперь все получилось, спасибо за разъяснение! Проблема в том, что у Синапса в результате декодирования обычный стринг. Я заменил код Синапса на ваш и все ок: Код: pascal 1. 2. 3. 4. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.01.2021, 16:48 |
|
||
|
Трудности перевода... Или как корректно раскодировать header.subject в Synapse
|
|||
|---|---|---|---|
|
#18+
Softologic Код: pascal 1. _Vasilisk_ Какой именно TEncoding использовать определяется отдельно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.01.2021, 16:50 |
|
||
|
Трудности перевода... Или как корректно раскодировать header.subject в Synapse
|
|||
|---|---|---|---|
|
#18+
_Vasilisk_ Softologic Код: pascal 1. _Vasilisk_ Какой именно TEncoding использовать определяется отдельно. А определять ее каким образом лучше? Из данной строки, поскольку как мы видим utf-8 здесь присутствует: '=?utf-8?B?Rnc6IM61zrnOtM+JzrvOv869INGE0LjQu9C+0YHQvtGE0Ys=?=' ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.01.2021, 16:52 |
|
||
|
Трудности перевода... Или как корректно раскодировать header.subject в Synapse
|
|||
|---|---|---|---|
|
#18+
Softologic вот изначальная строка, еще до s := DecodeBase64(su): '=?utf-8?B?Rnc6IM61zrnOtM+JzrvOv869INGE0LjQu9C+0YHQvtGE0Ys=?=' У тебя данные начиная с R. Попробуй декодировать строку "Rnc6IM61zrnOtM+JzrvOv869INGE0LjQu9C+0YHQvtGE0Ys=?=" ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.01.2021, 16:57 |
|
||
|
Трудности перевода... Или как корректно раскодировать header.subject в Synapse
|
|||
|---|---|---|---|
|
#18+
SoftologicА определять ее каким образом лучше? Единственный правильный способ: прочитать название кодировки после первого знака вопроса. Оно для того там и написано. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.01.2021, 17:10 |
|
||
|
Трудности перевода... Или как корректно раскодировать header.subject в Synapse
|
|||
|---|---|---|---|
|
#18+
Softologic А определять ее каким образом лучше? Из данной строки, Держите рыбу (не уверен, что в синапсе такого нет) Код: pascal 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.01.2021, 17:15 |
|
||
|
Трудности перевода... Или как корректно раскодировать header.subject в Synapse
|
|||
|---|---|---|---|
|
#18+
_Vasilisk_ Softologic А определять ее каким образом лучше? Из данной строки, Держите рыбу (не уверен, что в синапсе такого нет) Код: pascal 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. Спасибо! Суть стала понятна. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.01.2021, 17:30 |
|
||
|
|

start [/forum/topic.php?fid=58&fpage=29&tid=2037704]: |
0ms |
get settings: |
8ms |
get forum list: |
14ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
44ms |
get topic data: |
11ms |
get forum data: |
2ms |
get page messages: |
52ms |
get tp. blocked users: |
1ms |
| others: | 207ms |
| total: | 343ms |

| 0 / 0 |
