0
我在使用xlrd
和mysqldb
時在python中編碼時遇到了麻煩。 我正在閱讀一個包含其中的土耳其字符的excel文件。python mysqldb編碼問題
當我打印像print sheet.cell(rownum,19).value
寫入İstanbul
安慰,這是正確的數值。(Win7的龍力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
到數據庫,因爲它是。
MySQL + UTF-8 =噩夢 –
我同意但是這完全是關於MySQL嗎? – brsbilgic
我不知道'xlrd'是什麼,但我的猜測是這個問題出在MySQL的身上。如果有些更有知識的人今晚晚上回家時還沒有回答你,也許我可以查看一些我的代碼,並且實際上給出了某種答案。 –