HTML ページを解析し、いくつかの文字列を取得してから、mysql テーブルに書き込む Python スクリプトを作成しました。MySQLDb
データベース接続にモジュールを使用しています。取得された文字列は ISO-8859-7 (ギリシャ語) でエンコードされます。これは、MySQL テーブルのデフォルトのエンコードでもあります。例外を生成するコードは次のとおりです。
def db_write(list) :
import MySQLdb as sql
try :
con = sql.connect(//database info here//)
except :
print "could not connect to database"
exit()
cur = con.cursor()
for i in my_range (8,len(list)-2,2) :
query = 'INSERT INTO as_doy VALUES (%s,"%s")' % (list[i],list[i+1])
print query
try :
cur.execute(query)
con.commit()
except :
print "failed"
con.rollback()
con.close()
私が得る例外はERROR 1366 (HY000): Incorrect string value: '\xEF\xBF\xBD\xEF\xBF\xBD...'
文字列を utf-8 でエンコードし、iso-8859-7 でデコードして再エンコードしようとしましたが、まだ何もうまくいきませんでした。