我在使用xlrd
和mysqldb
. 我正在阅读一个包含土耳其语字符的 excel 文件。
当我打印print sheet.cell(rownum,19).value
它写入İstanbul
控制台的值时,这是正确的。(Win7 Lucida ConsoleLine,编码为`cp1254)
但是,如果我想将该值插入到数据库中
sql = "INSERT INTO city (name) VALUES('"+sheet.cell(rownum,19).value+"')"
cursor.execute (sql)
db.commit()
给出错误为
Traceback (most recent call last):
File "excel_employer.py", line 112, in <module> cursor.execute (sql_deneme)
File "C:\Python27\lib\site-packages\MySQLdb\cursors.py", line 157, in execute
query = query.encode(charset)
UnicodeEncodeError: 'latin-1' codec can't encode character u'\u0130' in position
41: ordinal not in range(256)
如果我将 sql 更改为
sql = "INSERT INTO city (name) VALUES('"+sheet.cell(rownum,19).value.encode('utf8')+"')"
该值被插入没有任何错误,但它变成Ä°stanbul
您能否告诉我如何将值İstanbul
按原样放入数据库。