Как изменить кодировку входящего сообщения Microsoft Outlook 2010 (UTF-8)
Имеем такое письмо(в аттчае). Меняю кодировку там же и получаю опять крякозябы.
Отправитель шлет в UTF-8(это железка). Как настроить отображение в Outlook?
|
Цитата:
Цитата obtim
Имеем такое письмо(в аттчае). »
|
Вы имеете. А мы — нет. Не хотите приложить само письмо (в архиве)?
|
obtim, это «Завершение работы системы» в ANSI/1251, закодированный как KOI8. Никакого юникода тут нет. Простой сменой кодировки в уже принятом сообщении тут не отделаешься. Разбираться Вам надо с кодировкой ещё при формировании исходящего письма.
Update: похоже, я отчасти погорячился :):
|
Странно, у меня не срабатывает :(
У этого письма(другая система) аналогичная проблема?
|
Цитата:
Цитата obtim
Странно, у меня не срабатывает »
|
obtim, Вы выбираете именно «Кириллица (Windows)» (а не «Windows-1251»)?
Цитата:
Цитата obtim
У этого письма(другая система) аналогичная проблема? »
|
Ага. Вот тут уже как раз UTF-8, это даже просто по самому тексту видно.
|
Интерфейс у меня немного отличается. В аттаче.
|
А у меня конструктивное предложение - написать скрипт
подсмотрено на просторах интернета, ну и проверено\доделано
Код:
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
И прицепить его к правилу на нужные адреса.
|
Цитата:
Цитата obtim
Интерфейс у меня немного отличается. »
|
Ну, это-то понятно. У меня Office 2003, у Вас — более новой версии.
Не могу сказать, почему у Вас не выходит. Ждите коллег с аналогичной версией, может быть они что-нибудь более вменяемое подскажут.
|
Цитата:
Цитата Iska
Ждите коллег с аналогичной версией »
|
Собственно добавить к вашему решению нечего, окромя упомянутой разнице в интерфейсе:
для первого письма нужно выбрать «Кириллица (Windows)», для второго - UTF-8, после чего текст читается (2010 версия).
gannet, любопытный вариант.
|
a_axe, интересно — отчего у коллеги obtim сие не срабатывает?!
|
Цитата:
Цитата Iska
отчего у коллеги 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, описанной тут, когда письму присваивается неверная кодировка:
Цитата:
Она возникает при совпадении четырех условий:
Версия Exchange Server 2010 SP1 RU3 или более поздняя.
К сообщению приложен файл.
Тема сообщения содержит русские кавычки — ёлочки ( « » ) .
Тело сообщения на русском языке в кодировке KOI8-R.
|
Вроде не похоже на проблему TS, но информация тоже может быть полезной.
|
Цитата:
Цитата a_axe
но возможно это вариант, аналогичный описанному
Цитата:
Чтобы увидеть текст такого письма нужно сначала выбрать любую другую кодировку , а потом…
|
»
|
Вот, кстати, да — запросто может быть такое. Иногда даже в справке chm (которая также базируется на библиотеках IE) иногда случается похожее, а лечится, бывает, простым F5/Ctrl-F5 :).
|
Я видел эти рекомендации. Они не помогли, поэтому и создал тему. Office 2010 ставился с 0-ля.
|
Цитата:
Цитата obtim
Office 2010 ставился с 0-ля. »
|
obtim, что будет, если создать на этом компьютере новую учетную запись Windows (после можно ее удалить) и запустить Outlook под этой чистой учетной записью?
Обновления Outlook (файл → справка → проверить наличие обновлений) все установлены?
|
Время: 05:52.
© OSzone.net 2001-