как кодировать / декодировать символы escape-последовательности в Python - PullRequest
3 голосов
/ 19 февраля 2010

как кодировать / декодировать символ escape-последовательности '\ x13' в python в символ, допустимый в RSS или XML.

Случай использования: я получаю данные из произвольных источников и создаю RSS-канал для этих данных. Источник данных иногда имеет символ escape-последовательности, который нарушает мой канал RSS.

Так, как я могу дезинфицировать входные данные с помощью символа escape-последовательности.

1 Ответ

2 голосов
/ 19 февраля 2010

\x13 (ASCII 19, «DC3») нельзя экранировать; это неверно в XML 1.0, точка. Вы можете включить один из них, закодированный как &#19; или &#x13; в XML 1.1, но тогда вам придется включить объявление <?xml version="1.1"?>, и многим инструментам это не понравится.

Я понятия не имею, почему этот символ будет включен в ваши данные, но путь вперед, вероятно, заключается в полном удалении управляющих кодов. Например:

re.sub('[\x00-\x08\x0B-\x1F]', '', s)

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

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