我正在制作一个Python脚本,用于批量编辑HTML文件(替换图像链接等)。现在,HTML文件包含一些Cyrillic,这意味着我必须编码字符串UTF-8。我替换HTML中的所有链接,并键入tag.set(data)和BOOM,控制台显示:
ValueError:所有字符串必须与XML兼容:Unicode或ASCII,无NULL字节或控制字符。
我该如何解决这个问题?我很确定没有任何控制字符或NULL字节。我正在使用Python 2.7.11。
value = tag.get('value').encode('utf-8')
#h = HTMLParser.HTMLParser()
#value = h.unescape(value)
urls = regex.finditer(value)
if urls is None: continue
for turl in urls:
ufile = turl.group().rsplit('/', 1)[-1]
value = value.replace(turl.group(), '/'+newsrc+'/'+ufile)
#value = cgi.escape(value, True)
value = value.replace('\0', '')
tag.set('value', value)
答案 0 :(得分:0)
这很容易。您只需要删除encode('utf-8')
部分。你看LXML不喜欢人们搞乱字符串的字符编码。只需将其保留为LXML即可将文本转换为合适的编码,一切都会好的。 :)