На главную
ПРАВИЛА FAQ Помощь Участники Календарь Избранное DigiMania RSS
msm.ru
Модераторы: Serafim, fatalist
  
    > нераспознанный символ в тексте, помогите понять как от него избавиться
      Всем привет.
      занимаюсь слегка не стандартной задачей, Outlook методом POST передает HTML содержимое письма в мой скрипт.А мой скрипт сохраняет его в базу.
      И все хорошо работает за исключением некоторых писем которые приходят от робота. В тексте письма есть с виду обычный дефис. Вот эта фраза
      ExpandedWrap disabled
        [B]Чистили, меняли печатающие головки - не помогло.[/B]

      особое внимание на дефис, -он простой и в оутлуке он виден как простое тире или минус.. При записи в базу на этом месте тест всегда обрывается , я сохранил текст в файл и вот что увидел на этом месте! (смотри картинку)
      при попытке скопировать это и вставить в текстовик получается вот такой символ типа Абзац -> ¶
      Никакие экранирования типа htmlspecialchars / htmlentities / Str_replace всех минусов и тире, и \n \r \f не помогают.

      Помогите мне вообще понять с чем я имею дело???

      Файл в кодировке утф 8

      Прикреплённый файлПрикреплённый файл222.png (9,77 Кбайт, скачиваний: 18)
      Сообщение отредактировано: secondvad2 -
        Цитата secondvad2 @
        (смотри картинку)

        secondvad2, прикрепи сам файл.
        Мои программные ништякиhttp://majestio.info
          Цитата JoeUser @
          Цитата secondvad2 @
          (смотри картинку)

          secondvad2, прикрепи сам файл.

          ага!
          найдешь нужное место поиском по слову "печатающие"
          Прикреплённый файлПрикреплённый файлdata.txt (3,13 Кбайт, скачиваний: 12)
            Цитата
            Никакие экранирования типа htmlspecialchars / htmlentities / Str_replace всех минусов и тире, и \n \r \f не помогают.

            Гм, а каким магическим образов все это в принципе могло бы помочь?

            Тут кодировка как-то странно побилась. Вероятно, в оригинале было длинное тире (U+2014), но при перекодировке оно превратилось в полный бред. БД, возможно, нервно реагирует на управляющий символ DC4, возможно, просто не может корректно сохранить символ подстановки (U+FFFD). Какую кодировку использует таблица и что конкретно в ней оказывается?

            Вероятно, виноват аутглюк (раз уж он сам все корректно показывает). Возможно, в тексте изначально есть аномалия, которую аутглюк умудряется обойти - чтобы разобраться, нужен дамп того, что в нем хранится.
              AVA12 Точно! так засиделся что уже совсем зашел в тупик ты оказался прав! дело то на стороне Аутлука.
              Пошарил код и заметил, что перед отправкой в крипт VBA тело письма оборачивал в функцию URLEncode(), что естесна тут не при делах) я ее случайно скопировал с другого места где она имеет место быть.

              Убрал URLEncode при передаче POSTом и все встало на свои места! Спасибо !

              Добавлено
              вопрос решился)
              Сообщение отредактировано: secondvad2 -
              1 пользователей читают эту тему (1 гостей и 0 скрытых пользователей)
              0 пользователей:


              Рейтинг@Mail.ru
              [ Script Execution time: 0,0767 ]   [ 17 queries used ]   [ Generated: 22.11.17, 23:41 GMT ]