Как убрать странные символы при потреблении канала? - PullRequest
0 голосов
/ 14 октября 2010

Я потребляю несколько фидов одновременно и собираю один фид. При получении и «очистке» описания для определенного тега я нахожу символы маркера, которые я не могу «убрать» из вывода.

Выполнение простого str_replace для нахождения символа (просто так, а не li или ascii value) для меня ничего не значит. Я чешу голову и задаюсь вопросом, почему это так? Похоже, это не проблема кодирования, просто пункт маркера, отправляемый в небезопасном формате.

Кто-нибудь сталкивался с этим? Персонаж, которого вы не смогли опознать или удалить?

Вот пример текста:

Required Qualifications:
•BSME or equivalent four year degree
•Minimum four years in blahblah industry experience

Выше приведен пример описания, которое я хочу очистить (хотелось бы заменить пулю на -, но согласился бы просто удалить ее.

Идеи

РЕДАКТИРОВАТЬ -------

Основываясь на отзывах, здесь приведены некоторые дополнительные детали. Персонаж просто приходит как есть . Я сомневаюсь, что это проблема кодирования, так как это конкретное местоположение выводит этот набор данных либо в HTML (веб-страница с подробностями), либо в XML-канал (упакованные html-теги внутри поля описания).

Я использую несколько XML-каналов, используя xml2array (php). У меня не было никаких проблем с этим раньше. Я почти уверен, что это UTF-8, только пуля проходит.

Чтобы собрать каналы, я создаю свою собственную сторону сервера массивов, и, как только я сопоставляю правильные значения из других каналов, я выводю окончательный «встроенный» канал XML (который затем использует внутреннее приложение).

Причина потребления нескольких источников? Пробелы в данных, которые недоступны в 1 формате.

БОЛЬШЕ РЕДАКТИРОВАНИЯ -------

Хорошо, похоже, это проблема с кодировкой, но мне еще предстоит удалить маркер . Я конвертирую его, используя utf8_encode, однако получаю странные символы, которые не копируются одинаково, поэтому я получаю что-то вроде â[]¢.

Снова я делаю что-то вроде xml2array(URL), который преобразует XML @ url в массив, а затем просто извлекает данные из встроенного массива.

Ответы [ 3 ]

2 голосов
/ 14 октября 2010

HTML-код для этого символа •, а числовой код •.Попробуйте поискать эти

кстати: может быть, preg_replace () справится с задачей

$str2 = preg_replace("/•/", "", $str);
0 голосов
/ 14 октября 2010

Попробуйте preg_replace и найдите \u2022

2022 - это кодовая точка Unicode для символа маркера.

0 голосов
/ 14 октября 2010

Если лента содержит буквенный символ маркера, проверьте, соответствует ли кодировка вашего файла PHP кодировке канала. В противном случае str_replace пропустит символ.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...