python操作mysql中国語の問題を挿入


最近pythonがmysqlに中国語の文字化けしを挿入する問題に遭遇しました
SQL_H_UPDATE_DELTA_ITEM = “INSERT INTO delta_item SET hostname=’%(_hostname)s’, itemID=%(_itemID)s, title=%(_title)s, copyright=%(_copyright)s WHERE itemID = %(_itemID)s”
ここのtitle、copyrightはすべて中国語です
#pythonのadodbで直接挿入するのは、挿入できません.ヒントはadodbがSQL文の文字列を解析できないことです.
その後、ネットで関連資料を調べたが、やはりだめでutf 8を使った.
最后に使って、1人のとても牛の同僚が私に教えてくれたとても変态なやり方:中国语を先にmysqlが识别できるバイナリに変えます(とても変态ですほほほ)
import adodb
def quote_buffer(buf):
    """
    chinese to mysql
    """
    retstr = ''.join(map(lambda c:'%02x'%ord(c), buf))
    retstr = "x'" + retstr + "'"
    return retstr

挿入が必要な中国語の部分をこの関数で変換すれば、そのまま一般文字列として使用でき、データベースに挿入すれば、文字化けしが解決します.
注意点:
この関数はすでに処理された文字列を返すので、SQL文では、1つの占有スペースだけでいいので、引用符を付けないでください.