我正在使用 ElementTree 来查看 MySQL 记录并解析出没有任何声明存储的 XML。我知道文本编码有问题,但我不确定如何解决这个问题。我得到的错误是:
xml.parsers.expat.ExpatError: not well-formed (invalid token):
我试过 s.decode("CP1252").encode("UTF-8") 和一个简单的 s.replace("'", "") 但都没有帮助(其中 s 是 XML 的记录)。我还在这些转换之前和之后打印了字符串,只是看到打印时,字符读取“?”,在转换之前和之后。我期待看到它在替换(“'”,“”)之后消失,但它没有。
有任何想法吗?
谢谢!
' 编辑::
我正在使用字符串与使用 MySqlDb 来复制问题,但它没有产生错误。默认情况下,MySQLDb 不是 UTF-8 编码的,因此必须在 DB 连接中指定。一旦我将 'init_command... ...utf8' 添加到我的连接末尾,它就能够解释撇号并将其包含在我的查询的 REPLACE(column_with_xml, "'", "") 部分中。
conn = MySQLdb.Connection(db=config.mydb['mydb'], host=config.mydb['host'], port=config.mydb['port'], user=config.mydb['user'], passwd=config.mydb['password'], init_command='SET NAMES utf8',charset='utf8')