2010-02-19 1 views
3

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

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

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

ответ

2

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

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

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

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

Смежные вопросы