我使用cgi,python 2.7和sqlite。通過python 2.7,cgi和html添加Å,Ä和Ö到sqlite表格
我想插入一個字符串?包含字符å,ä和ö到sqlite表中。
print '<form action="./printusername.cgi" method="post">'
print 'First Name: <input type="text" name="first_name">'
print '</form>'
1M在printusername.cgi接收這樣的值::
import cgi
cgitb.enable()
form = cgi.FieldStorage()
first_name = form.getvalue('first_name')
字符串從一個html交使用CGI
這個代碼在取值取然後我試圖將它傳遞到一個SQLite表,沿着白衣一些其他值,如下所示:
import sqlite3
con = sqlite3.connect('Addressbook.db')
cursor = con.cursor()
contact = (first_name,other_valu_1,other_valu_1)
cursor.execute("INSERT INTO entrys VALUES(?, ?, ?)",contact)
當我這樣做,我會收到以下錯誤:
<class 'sqlite3.ProgrammingError'>: You must not use 8-bit bytestrings
unless you use a text_factory that can interpret 8-bit bytestrings
(like text_factory = str). It is highly recommended that you instead
just switch your application to Unicode strings.
,如果我不使用A,A或o在HTML後一切工作正常。
爲什麼會發生此錯誤?我怎樣才能避免它,並仍然保持sqlite表中的數據可讀?
如果數據需要格式化,下次何時可以訪問它時如何合成它?
所有幫助表示讚賞! sry 4我的壞英文。
gr8th鏈接和一個明確的答案!謝謝你,問題解決了! +1 – user3416789