4

Сообщения электронной почты между моей женой и мной недавно начали повреждаться при вставке последовательности символов «½» в сообщения. Похоже, это проблема кодировки.

Этот вопрос о SO идентифицирует строку как UTF-8 для символа «�». Различные дискуссии, найденные Googling, показывают, что люди испытывали множество других символов (например, апостроф и многоточие), заменяемых этой строкой в электронной почте и при просмотре веб-сайтов. Кажется, что этот символ UTF-8 используется в качестве общей замены для множества неперерисовываемых символов.

В этом случае я использую Thunderbird (V52.5.0) в Linux, а моя жена использует Outlook (2007) в Windows 7 (оба форматируют сообщения как HTML).

Thunderbird вставляет некоторые невидимые маркеры форматирования, которые заменяются этой строкой в Outlook. Строка появляется в двух типах местоположений:

  • замена первого из двух пробелов между точкой в конце предложения и следующим предложением
  • возврат каретки используется для создания пустых строк между абзацами.

Подстановка происходит в Outlook и применяется ко всему потоку сообщений, отображенному в Thunderbird. Это включает в себя старые сообщения, которые были отправлены в Outlook, но были частью потока, отображаемого в Thunderbird перед ответом обратно в Outlook.

Это замена персонажа, а не проблема рендеринга. После замены строки повреждение сохраняется при последующем просмотре сообщения в любой из систем.

Это очень недавняя проблема, поэтому я предполагаю, что обновление программного обеспечения или ОС на одной из систем является ответственным.

Я посмотрел на настройки кодирования в Thunderbird и Outlook и, действительно, они были пестрой смесью; какой-то UTF-8, какой-то западноевропейский (понятия не имею, откуда это могло появиться) и что-то еще, я думаю, западный ISO 8859). Я установил все на UTF-8. Вот что я нашел и изменил:

  • Thunderbird: Preferences | Display | Formating | Fonts Advanced | Text Encoding
  • Outlook: Tools | Options | Mail Format | International Options
    также: Tools | Options | Other | General | Advanced Options | Use Unicode message format when saving messages

Я также проверил, что настройки локали все еще корректны в обеих системах (США, американский английский и т.д.).

К сожалению, симптом не изменился. Есть ли настройки кодирования, скрытые в различных и разных местах в Thunderbird или Outlook, которые я мог пропустить (или какая-то другая проблема)?

2 ответа2

3

Похоже, что проблема была в кодировке. Я проводил повторное тестирование со старыми сообщениями, которые, по моему мнению, не были повреждены. На самом деле, похоже, что они уже были испорчены. Предложение Саида Сепера провести тестирование с помощью веб-почты привело к созданию свежих сообщений и ответов в обоих направлениях, которые не имели симптомов.

Так что установка всей кодировки UTF-8 в обеих системах была тем, что решило проблему. И теперь это проверено.

Я обнаружил, что другой пользователь Thunderbird опубликовал аналогичный вопрос на форуме поддержки Mozilla в начале декабря. Люди, которые столкнулись с проблемой, имели кодировку Western (ISO-8859-1). Установка его в UTF-8 была, по крайней мере, частью решения.

Дополнительная рекомендация, которая, похоже, помогла некоторым пользователям (или, по крайней мере, не повредила):

Edit | Preferences | Display | Formatting | Fonts Advanced | Text Encoding | 

Установите флажок When possible, use the default text encoding in replies . Предупреждение: делайте это только в сочетании с настройкой кодировки в UTF-8. Выполнение этого с кодировкой Western (ISO-8859-1) усугубит проблему.

Обратите внимание, что пути меню немного изменились в разных версиях, поэтому вам может понадобиться найти настройки, упомянутые здесь и в вопросе, в зависимости от вашей версии Thunderbird.

2

Похоже, вы отправляете электронные письма в формате HTML, но исходное программное обеспечение вставляет символы BOM (метка порядка байтов) в текст сообщения. Возможно, вы не можете их видеть, потому что это в основном происходит для неанглийских типов ввода из-за разной длины битов для каждого символа.

Я не использую Thunderbird, но вы можете проверить, есть ли какая-либо опция, помеченная как "без спецификации" в представлении кодирования, поэтому проверьте ее.

Другой вариант, который, я думаю, работает, - это использование UTF-16 в клиенте отправителя (Thunderbird) и то же самое в представлении кодирования в месте назначения (Outlook).

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .