Python:NULL字节或控制字符

时间:2014-05-30 14:19:04

标签: python lxml

我目前正在使用lxml。我设置属性,我收到以下错误:

  

ValueError:所有字符串必须兼容XML:Unicode或ASCII,否   NULL字节或控制字符

我使用相同的脚本已经有好几年了,到目前为止我还没有遇到任何问题(我已经有新的文件需要处理)。

如何处理空字节或控制字符?最好的解决方案可能是忽略它们。但是怎么做呢?

我设置了这样的新字符串:

w.set("lem", newString)

在杰克的帮助下,我知道以下原因导致错误:

  

"错误的字符串是:' Bo \ xdf'"。

我该如何处理这类案件?

编辑: 使用此功能:

from curses import ascii
def clean(text):
    return str(''.join(
            ascii.isprint(c) and c or '?' for c in text
            )) 

我再也不会收到任何错误。但代码设置了很多"?"。取代"?",我希望有正确的字符(在utf-8中)...

1 个答案:

答案 0 :(得分:0)

要调试您的问题,请暂时修改您的代码:

try:
  w.set("lem", newString")
except ValueError:
  print("Bad string is: "+newString)

然后你可以看到字符串是什么,找出错误以及该如何处理。