Python LXML ValueError和UTF字符串
我正在制作一个小Python脚本,用于大规模编辑HTML文件(替换图像链接等)。现在,HTML文件包含一些西里尔文,这意味着我必须对字符串UTF-8进行编码。我替换HTML中的所有链接,并键入tag.set(数据)和BOOM,控制台显示: ValueError:所有字符串必须与XML兼容:Unicode或ASCII,无空字节或控制字符 我怎样才能解决这个问题?我很确定没有任何控制字符或空字节。我正在使用Python 2.7.11Python LXML ValueError和UTF字符串,python,encoding,utf-8,lxml,cyrillic,Python,Encoding,Utf 8,Lxml,Cyrillic,我正在制作一个小Python脚本,用于大规模编辑HTML文件(替换图像链接等)。现在,HTML文件包含一些西里尔文,这意味着我必须对字符串UTF-8进行编码。我替换HTML中的所有链接,并键入tag.set(数据)和BOOM,控制台显示: ValueError:所有字符串必须与XML兼容:Unicode或ASCII,无空字节或控制字符 我怎样才能解决这个问题?我很确定没有任何控制字符或空字节。我正在使用Python 2.7.11 value = tag.get('value').encode('
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)
这很容易。您只需要删除
encode('utf-8')
部分。你看,LXML不喜欢人们弄乱字符串的字符编码。只要让LXML将文本转换为合适的编码,一切都会好起来的。:) 请提供一些你迄今为止尝试的示例代码添加代码,Gerard请不要在你的任何帖子中添加紧急请求,或者在你的读者群主要由志愿者组成的网站上的任何地方。这种要求很高的语气很可能会让人们不愿意回答你——出于这个原因,我特意把它删掉了。作为提醒,我投了反对票。请不要再添加它-这称为“编辑”,通常会在此处显示版主标志。这将有助于查看触发错误的示例数据。感谢您的建议(halfer!)