代码之家  ›  专栏  ›  技术社区  ›  Ashok

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

  •  3
  • Ashok  · 技术社区  · 15 年前

    如何将python中的转义序列字符'\x13'编码/解码为在RSS或XML中有效的字符。

    用例是,我从任意源获取数据,并为这些数据制作一个RSS提要。数据源有时具有转义序列字符,这会破坏我的RSS源。

    那么,如何用转义序列字符对输入数据进行消毒呢?

    1 回复  |  直到 15 年前
        1
  •  2
  •   bobince    15 年前

    \x13 (ascii 19,__dc3_)不能转义;它在xml 1.0,period中无效。你 可以 包括一个,编码为 &#19; &#x13; 在XML 1.1中,但是必须包含 <?xml version="1.1"?> 声明和许多工具都不喜欢它。

    我不知道为什么这个字符会包含在您的数据中,但前进的道路可能是完全删除控制代码。例如:

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

    对于某些类型的转义序列(如ansi颜色代码),您可能会在其中仍然有一些杂散的(非控制)字符,在这种情况下,您可能需要一个特定格式的自定义解析器。