|
ADODB.Stream, CDO.Message и кодировка письма .msg | ☑ | ||
---|---|---|---|---|
0
heserby
22.10.14
✎
16:13
|
Добрый день, форумчане!
Есть папка с письмами *.msg. Требуется распечатывать их из 1с. Получаю письма таким образом: Функция ПолучитьПисьмоНаСервере(ДанныеФайла, КодировкаПисьма) Перем Имя,Путь; Байт = 255; ПолныйПуть = "C:\Temp\" + ДанныеФайла.ПутьКФайлу; обСообщение = Неопределено; обСообщение = Новый COMОбъект("CDO.Message"); обПоток = Новый COMОбъект("ADODB.Stream"); обПоток.CharSet = КодировкаПисьма; обПоток.Type = 2; обПоток.Mode = 3; обПоток.Open(); обПоток.LoadFromFile(ПолныйПуть); обПоток.Flush(); Если НЕ КодировкаПисьма = "windows-1251" Тогда СтримВыход = Новый COMОбъект("ADODB.Stream"); СтримВыход.Type = 2; СтримВыход.Mode = 3; СтримВыход.charset = "windows-1251"; СтримВыход.LineSeparator = -1; СтримВыход.Open(); Всего = обПоток.size; Пока обПоток.EOS = 0 Цикл СтримВыход.WriteText(обПоток.ReadText(Байт),?(Байт=-2,1,0)); КонецЦикла; СтримВыход.Flush(); обСообщение.Datasource.OpenObject(СтримВыход, "_Stream"); СтримВыход.Close(); Иначе обСообщение.Datasource.OpenObject(обПоток, "_Stream"); КонецЕсли; обСообщение.DataSource.Save(); обПоток.Close(); ХТМЛТекстПисьма = обСообщение.BodyPart.Fields(7).OriginalValue; Возврат ХТМЛТекстПисьма; КонецФункции Большинство писем в кодировке koi-8, и мой stream меняет кодировку на win-1251. Но попадаются иногда письма в кодировке utf-8 и собственно, сразу в win-1251, и приходят кракозябры. Вопрос: Как мне получить кодировку письма? Помощи, пожалуйста. |
|||
1
heserby
22.10.14
✎
16:55
|
апну
|
|||
2
heserby
22.10.14
✎
17:32
|
пожалуй, еще апну разок
|
|||
3
heserby
23.10.14
✎
10:39
|
ап
|
|||
4
heserby
23.10.14
✎
10:59
|
ап!
|
|||
5
Mordor_1C
23.10.14
✎
11:08
|
||||
6
Mordor_1C
23.10.14
✎
11:15
|
(0) Тут еще посмотри
http://www.cyberforum.ru/vba/thread1205519.html |
|||
7
heserby
23.10.14
✎
13:15
|
(5) (6) Спасибо.
Возможно я неправильно сформулировал вопрос. Я могу перекодировать письмо из одной кодировки в другую, да. Но я не пойму в какой кодировке у меня письмо изначально. В ComОбъект Stream надо сразу задавать Charset. А какой выбрать я не знаю. Письма есть в 3 кодировках. Как мне получить кодировку из письма? |
|||
8
heserby
23.10.14
✎
15:45
|
ап...
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |