Показать полную графическую версию : Как изменить кодировку входящего сообщения Microsoft Outlook 2010 (UTF-8)
Имеем такое письмо(в аттчае). Меняю кодировку там же и получаю опять крякозябы.
Отправитель шлет в UTF-8(это железка). Как настроить отображение в Outlook?
Имеем такое письмо(в аттчае). »
Вы имеете. А мы — нет. Не хотите приложить само письмо (в архиве)?
obtim, это «Завершение работы системы» в ANSI/1251, закодированный как KOI8. Никакого юникода тут нет. Простой сменой кодировки в уже принятом сообщении тут не отделаешься. Разбираться Вам надо с кодировкой ещё при формировании исходящего письма.
Update: похоже, я отчасти погорячился :):
http://i.imgur.com/D6sh0YC.png
http://i.imgur.com/4tBP5jo.png
Странно, у меня не срабатывает :(
У этого письма(другая система) аналогичная проблема?
Странно, у меня не срабатывает »
obtim, Вы выбираете именно «Кириллица (Windows)» (а не «Windows-1251»)?
У этого письма(другая система) аналогичная проблема? »
Ага. Вот тут уже как раз UTF-8, это даже просто по самому тексту видно.
http://i.imgur.com/rWVSUX9.png
Интерфейс у меня немного отличается. В аттаче.
А у меня конструктивное предложение - написать скрипт
Sub UtfToKoi8RMessageRule(Item As Outlook.MailItem)
'Естественно, для каждого правила\набора кодировок нужна своя процедура
'Указываем входящую и нужную кодировку
Item.Body = ChangeTextCharset(Item.Body, "utf-8", "koi8-r")
End Sub
Function ChangeTextCharset(ByVal txt$, ByVal DestCharset$, _
Optional ByVal SourceCharset$) As String
' функция перекодировки (смены кодировки) текстовой строки
' В качестве параметров функция получает текстовую строку txt$,
' и название кодировки DestCharset$ (в которую будет переведён текст)
' Функция возвращает текст в новой кодировке
On Error Resume Next: Err.Clear
With CreateObject("ADODB.Stream")
.Type = 2: .Mode = 3
If Len(SourceCharset$) Then .Charset = SourceCharset$ ' указываем исходную кодировку
.Open
.WriteText txt$
.Position = 0
.Charset = DestCharset$ ' назначаем новую кодировку
ChangeTextCharset = .ReadText
.Close
End With
End FunctionИ прицепить его к правилу (http://itman.in/outlook-vba/) на нужные адреса.
Интерфейс у меня немного отличается. »
Ну, это-то понятно. У меня Office 2003, у Вас — более новой версии.
Не могу сказать, почему у Вас не выходит. Ждите коллег с аналогичной версией, может быть они что-нибудь более вменяемое подскажут.
Ждите коллег с аналогичной версией »
Собственно добавить к вашему решению нечего, окромя упомянутой разнице в интерфейсе:
для первого письма нужно выбрать «Кириллица (Windows)», для второго - UTF-8, после чего текст читается (2010 версия).
http://s019.radikal.ru/i604/1705/a6/921538d61668.jpg
gannet, любопытный вариант.
a_axe, интересно — отчего у коллеги obtim сие не срабатывает?!
отчего у коллеги obtim сие не срабатывает?! »
Iska, я слабо разбираюсь в кодировках, но возможно это вариант, аналогичный описанному на сайте manaeff.ru (у меня не грузится, но доступна сохраненная копия поисковика):
На компьютере установлен Microsoft Office 2010 . При получении некоторых писем, MS Outlook 2010 не отображает кириллический текст, вместо него просто пустое место (либо кракозябры).
При анализе таких писем видно, что они созданы в кодировке Unicode (UTF-8). И даже если кодировка письма выбрана правильно, все равно текст не отображается. Чтобы увидеть текст такого письма нужно сначала выбрать любую другую кодировку , а потом снова вернуть Unicode (UTF-8).
Объяснение:
Такое поведение MS Outlook 2010 наблюдается в тех случаях, когда почтовая папка pst была создана без поддержки Unicode (UTF-8), то есть в версиях до 2007. Начиная с MS Outlook 2007, формат Юникод используется для новых файлов PST по умолчанию.
Решение:
1. Создаем файл сообщений почты (PST) в формате Office 2007 (он создастся сразу с поддержкой Unicode (UTF-8)) (см. Настройка параметров Юникод в Outlook 2007)
2. Делаем его файлом по-умолчанию
3. Настраиваем учетные записи, чтобы они складывали почту в этот файл
4. Переносим (копируем) почту из старого файла pst в новый
Теперь новые письма в кодировке Unicode (UTF-8) будут сразу нормально отображаться, а старый файл pst можно отключить в Outlook и вообще удалить из файловой системы (убедившись, что почта нормально скопировалась в новый файл).
Примечание: Если вдруг новый файл создается без поддержки Unicode (UTF-8), то придется создать новую конфигурацию почты, а потом выполнить все указанные шаги.
Лично я сталкивался с ошибкой в Microsoft Exchange Server 2010, описанной тут (http://msbro.ru/index.php/archives/4649), когда письму присваивается неверная кодировка:
Она возникает при совпадении четырех условий:
Версия Exchange Server 2010 SP1 RU3 или более поздняя.
К сообщению приложен файл.
Тема сообщения содержит русские кавычки — ёлочки ( « » ) .
Тело сообщения на русском языке в кодировке KOI8-R.
Вроде не похоже на проблему TS, но информация тоже может быть полезной.
но возможно это вариант, аналогичный описанному
Чтобы увидеть текст такого письма нужно сначала выбрать любую другую кодировку , а потом…»
Вот, кстати, да — запросто может быть такое. Иногда даже в справке chm (которая также базируется на библиотеках IE) иногда случается похожее, а лечится, бывает, простым F5/Ctrl-F5 :).
Я видел эти рекомендации. Они не помогли, поэтому и создал тему. Office 2010 ставился с 0-ля.
Office 2010 ставился с 0-ля. »
obtim, что будет, если создать на этом компьютере новую учетную запись Windows (после можно ее удалить) и запустить Outlook под этой чистой учетной записью?
Обновления Outlook (файл → справка → проверить наличие обновлений) все установлены?
© OSzone.net 2001-2012
vBulletin v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.