|
|
|
Oracle email attachments LF=>CRLF?
|
|||
|---|---|---|---|
|
#18+
С помощью JavaMail посылаем (все внутри PL/SQL) текстовые файлы. Файлы созданы на DB сервере пакетом utl_file; внутри файлов конец строки обозначен знаком 0A (LF) Файлы посылаются кодом вида Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. файлы благополучно приходят к получателю, открываются в MS Outlook, все прекрасно. Но чисто из любопытства я пытаюсь понять: В какой момент, где происходит конверсия LF в CRLF? Потому что полученные в аттаче текстовые файлы (.txt) вместо LF (как в оригинальных файлах) везде имеют аккуратно подставленные CR LF, так что даже Notepad видит их совершенно нормально. Это какая-то фича JavaMail по умолчанию? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.01.2016, 01:37 |
|
||
|
Oracle email attachments LF=>CRLF?
|
|||
|---|---|---|---|
|
#18+
Большинство текстовых редакторов (за исключением некоторых Linux-овых) толерантны к 0d 0a или 0а. Смотреть на сохранённый файл надо не notepad а hex-редактором. Это я говорю к тому что глаза могут тебя обманывать. И когда разбираешся с ошибкой кодировок то нужно работать не с текстовым представлением информации а с исходным двоичным. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.01.2016, 02:43 |
|
||
|
Oracle email attachments LF=>CRLF?
|
|||
|---|---|---|---|
|
#18+
maytonБольшинство текстовых редакторов (за исключением некоторых Linux-овых) толерантны к 0d 0a или 0а. Смотреть на сохранённый файл надо не notepad а hex-редактором. Это я говорю к тому что глаза могут тебя обманывать. И когда разбираешся с ошибкой кодировок то нужно работать не с текстовым представлением информации а с исходным двоичным. Большое спасибо, капитан. Вы забыли добавить, что смотреть файл желательно на компьютере. Кто-нибудь по делу, пожалуйста? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.01.2016, 02:56 |
|
||
|
Oracle email attachments LF=>CRLF?
|
|||
|---|---|---|---|
|
#18+
ХБ, Не факт что это из-за JavaMail, а не, например, сервера: https://community.oracle.com/thread/1590219?start=0&tstart=0 Generally, for any content with MIME type text/*, the receiver should save the data using the line terminators that are appropriate for textual data on the receiving system. So, for instance, if you're sending text to a Windows system, you should not expect it to be saved with the Unix LF-only line terminators, but rather with the Windows CRLF line terminators. If you absolutely positively need to preserve the line terminators at any cost, you'll need to force the content to be encoded using base64 encoding by setting the "Content-Transfer-Encoding" header to "base64". You may also need to force the content type to be something other than text/*, e.g., "application/octet-stream". ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.01.2016, 08:44 |
|
||
|
Oracle email attachments LF=>CRLF?
|
|||
|---|---|---|---|
|
#18+
BlazkowiczХБ, Не факт что это из-за JavaMail, а не, например, сервера: https://community.oracle.com/thread/1590219?start=0&tstart=0 Generally, for any content with MIME type text/*, the receiver should save the data using the line terminators that are appropriate for textual data on the receiving system. So, for instance, if you're sending text to a Windows system, you should not expect it to be saved with the Unix LF-only line terminators, but rather with the Windows CRLF line terminators. If you absolutely positively need to preserve the line terminators at any cost, you'll need to force the content to be encoded using base64 encoding by setting the "Content-Transfer-Encoding" header to "base64". You may also need to force the content type to be something other than text/*, e.g., "application/octet-stream". Я пытался это проверить; оказалось что если те же файлы посылать _вручную_, т.е. просто создать email в аутлуке и приаттачить файл - он приходит _без_ изменений, т.е. с тем же терминатором LF. Мне кажется это доказывает, что сервер вроде бы не причем. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.01.2016, 18:17 |
|
||
|
Oracle email attachments LF=>CRLF?
|
|||
|---|---|---|---|
|
#18+
ХБЯ пытался это проверить; оказалось что если те же файлы посылать _вручную_, т.е. просто создать email в аутлуке и приаттачить файл - он приходит _без_ изменений, т.е. с тем же терминатором LF. Мне кажется это доказывает, что сервер вроде бы не причем. Нет, не доказывает. Надо смотреть все заголовки. Аттачить можно разными способами. Не исключено, что Outlook любые аттачметы кодирует. А JavaMail послал как plain text. Поэкспериментируйте с заголовками в MimeBodyPart. Посмотрите чем-нибудь сырое письмо стянутое с POP3, а не в клиенте. Сравните отправленные из Outlook и JavaMail. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.01.2016, 18:23 |
|
||
|
Oracle email attachments LF=>CRLF?
|
|||
|---|---|---|---|
|
#18+
ХБЭто какая-то фича JavaMail по умолчанию?RFC822 со товарищи. "Плоский текст" означает канонический (CR LF) конец строки. Конформантный инструментарий имеет право, более того, должен преобразовывать платформенно-специфичные разности к каноническому виду. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.01.2016, 18:50 |
|
||
|
|

start [/forum/topic.php?fid=59&tid=2124415]: |
0ms |
get settings: |
7ms |
get forum list: |
14ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
41ms |
get topic data: |
8ms |
get forum data: |
2ms |
get page messages: |
37ms |
get tp. blocked users: |
1ms |
| others: | 202ms |
| total: | 316ms |

| 0 / 0 |
