如何在Python中编码/解码转义序列字符

3 投票
1 回答
2732 浏览
提问于 2025-04-15 19:29

如何在Python中对转义字符'\x13'进行编码/解码,使其变成RSS或XML中有效的字符。

我的使用场景是,我从各种来源获取数据,并为这些数据制作RSS订阅源。有时候,数据源中会出现转义字符,这导致我的RSS订阅源出错。

那么,我该如何处理包含转义字符的输入数据呢?

1 个回答

2

字符 \x13(ASCII 19,叫做‘DC3’)在XML 1.0中是不能使用的,直接说就是无效的。你可以在XML 1.1中用 &#19;&#x13; 来表示这个字符,但这样的话你得在文件开头加上 <?xml version="1.1"?> 的声明,而且很多工具可能不支持这个版本。

我不知道为什么你的数据里会有这个字符,但解决的办法可能是把控制字符完全去掉。比如:

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

对于某些类型的转义序列(比如ANSI颜色代码),你可能会发现里面还有一些多余的(非控制)字符,这种情况下你可能需要为这种特定格式写一个自定义的解析器。

撰写回答