Sziasztok!
Viszonylag kezdő vagyok Pythonba.
Van egy problémám, nevezetesen az, hogy egy python script az istennek se akar lefutni. Már mindent megpróbáltam amit a Google-n találtam de semmi. A programrészlet ez:
def add(nick, subject, body):
subject = subject.encode('utf-8')
body = body.encode('utf-8')
conn = connect()
# ....
sql = "INSERT INTO news(uid,subject,body) VALUES ('%s', '%s', '%s')" % (nick, utils.escape(subject), utils.escape(body))
cursor.execute(sql)
cursor.close()
conn.close()
return True
# ....
Az utils.escape ilyen kis egyszerű valami:
from xml.sax import saxutils
def escape(string):
string = saxutils.escape(string)
string = string.replace("'", "")
string = string.replace("\x60", "`")
return string
A teszt és a hibaüzi:
>>> subject="'Tárgytalan tárgy'"
>>> body = 'Sok-sok hosszú-hosszú szöveg a semmiről...'
>>> nick = 'hron'
>>> add(nick, subject, body)
/home/hron/public_html/gentoohu3/lib/news.py:78: Warning: Incorrect string value: '\xE1rgyta...' for column 'subject' at row 1
cursor.execute(sql)
/home/hron/public_html/gentoohu3/lib/news.py:78: Warning: Incorrect string value: '\xFA-hoss...' for column 'body' at row 1
cursor.execute(sql)
Plusz infó: a MySQL-be a végén bekerül a bejegyzés, csak ettől én még boldog nem leszek, mert az első ékezetes karakternél vág.
Tudom, hogy láma vagyok, és RTFM, de mutassatok rá arra a manualra, ahol ez sztájbarágósan le van írva... Bár konkrét példakódnak még jobban örülnék.
Pls, ne offoljátok szét...
- 1305 megtekintés