Python:所有字符串必须是XML兼容的:Unicode或ASCII,没有空字节或控制字符

Python:所有字符串必须是XML兼容的:Unicode或ASCII,没有空字节或控制字符,python,unicode,utf-8,format,Python,Unicode,Utf 8,Format,我使用的是DocX模块,用于python和Mysql,所以我今天的问题是,我遇到了一个问题,因为我知道从数据库检索到了a,所以影响了行单元格[2]。text=a,问题并不存在,因为我知道在重复密钥更新时使用的是与相同的字符,而且我使用的是%s而不是.format() 引发的错误为ValueError:所有字符串必须与XML兼容:Unicode或ASCII,无空字节或控制字符 我尝试了encode(),encode(A,'utf-8'),我在所有脚本中都有#-*-编码:utf-8-*- 需要帮忙吗

我使用的是DocX模块,用于python和Mysql,所以我今天的问题是,我遇到了一个问题,因为我知道从数据库检索到了
a
,所以影响了
行单元格[2]。text=a
,问题并不存在,因为我知道在重复密钥更新时使用的是与
相同的字符,而且我使用的是
%s
而不是
.format()

引发的错误为
ValueError:所有字符串必须与XML兼容:Unicode或ASCII,无空字节或控制字符

我尝试了
encode()
encode(A,'utf-8')
,我在所有脚本中都有
#-*-编码:utf-8-*-

需要帮忙吗


编辑:当我将插入设置回%s时,一切正常,所以format()函数有问题吗?有人有解释吗

你试过打印ascii(A)吗?没有这样的功能。但是,当我使用%s而不是format()在数据库上设置insert时,它工作正常。我只是好奇,想知道发生了什么事。加,你现在在Py2上。好的,然后打印报告(A)。此外,打印类型(A)可能有助于。。。我猜是unicode,但可能是str。