如何在Python中编码/解码转义序列字符
如何在Python中对转义字符'\x13'进行编码/解码,使其变成RSS或XML中有效的字符。
我的使用场景是,我从各种来源获取数据,并为这些数据制作RSS订阅源。有时候,数据源中会出现转义字符,这导致我的RSS订阅源出错。
那么,我该如何处理包含转义字符的输入数据呢?
1 个回答
2
字符 \x13
(ASCII 19,叫做‘DC3’)在XML 1.0中是不能使用的,直接说就是无效的。你可以在XML 1.1中用 
或 
来表示这个字符,但这样的话你得在文件开头加上 <?xml version="1.1"?>
的声明,而且很多工具可能不支持这个版本。
我不知道为什么你的数据里会有这个字符,但解决的办法可能是把控制字符完全去掉。比如:
re.sub('[\x00-\x08\x0B-\x1F]', '', s)
对于某些类型的转义序列(比如ANSI颜色代码),你可能会发现里面还有一些多余的(非控制)字符,这种情况下你可能需要为这种特定格式写一个自定义的解析器。