У меня проблемы с кодированием в python при использовании 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
в базу данных как есть.