我目前正在使用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中)...
答案 0 :(得分:0)
要调试您的问题,请暂时修改您的代码:
try:
w.set("lem", newString")
except ValueError:
print("Bad string is: "+newString)
然后你可以看到字符串是什么,找出错误以及该如何处理。