ElementTreeを使用してMySQLレコードを調べ、宣言なしで保存されているXMLを解析しています。テキストエンコーディングに問題があることは知っていますが、問題を解決する方法がわかりません。私が得ているエラーは次のとおりです。
xml.parsers.expat.ExpatError: not well-formed (invalid token):
s.decode( "CP1252")。encode( "UTF-8")と単純なs.replace( "'"、 "")を試しましたが、どちらも役に立ちませんでした(sはXMLのレコードです)。また、これらの変換の前後に文字列を印刷しましたが、印刷すると、変換の前後で文字が「?」と表示されることがわかりました。replace( "'"、 "")の後に消えることを期待していましたが、そうではありませんでした。
何か案は?
ありがとう!
' 編集::
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')