Seite 1 von 1
umlaute
Verfasst: Dienstag 19. Oktober 2010, 14:26
von Sync32
Normalerweiße verwende ich für umlaute
u'löffel'
aber wie mache das bei input eingaben vom user, wie wandele ich die um ?
Re: umlaute
Verfasst: Dienstag 19. Oktober 2010, 14:28
von lutz.horn
Python 2.x oder 3.x?
Re: umlaute
Verfasst: Dienstag 19. Oktober 2010, 14:34
von Sync32
2.x
Re: umlaute
Verfasst: Dienstag 19. Oktober 2010, 14:38
von lutz.horn
Falls der Nutzer auf der Konsole eine Eingabe machen soll, gibt es
http://docs.python.org/library/functions.html#raw_input
Code: Alles auswählen
s = raw_input("-->")
print type(s)
#<type 'str'>
u = unicode(s, encoding="UTF-8")
print type(u)
# <type 'unicode'>
Re: umlaute
Verfasst: Dienstag 19. Oktober 2010, 14:43
von Sync32
ne ich mein ein html-inputfeld
wenn ich vorher ein
unicode(...) mache kommt _>
UnicodeDecodeError: 'utf8' codec can't decode byte 0xf6 in position 1: invalid start byte
Code: Alles auswählen
def db_newentry(self, name, msg):
connection = MyDatabase.sqlite3.connect(self.dbname)
cursor = connection.cursor()
msg_date = time.ctime() #time.strftime("%d. %m. %Y")
u = unicode(name, encoding="UTF-8")
werte = (u, msg, msg_date)
sql = "INSERT INTO entries(name, msg, msg_date)VALUES (?, ?, ?)"
cursor.execute(sql, werte)
connection.commit()
cursor.close()
habs jetzt erstmal nur beim namen ausprobiert...
Re: umlaute
Verfasst: Dienstag 19. Oktober 2010, 14:50
von lutz.horn
* Dieses Thema ist eher im Webframeworks-Unterforum am richtigen Ort.
* Welches Webframework verwendest Du?
Re: umlaute
Verfasst: Dienstag 19. Oktober 2010, 15:37
von Sync32
ch errpy
Re: umlaute
Verfasst: Dienstag 19. Oktober 2010, 20:41
von Darii
Ja, aber wo kommt den `name` her? Welche Codierung gibts du denn im HTML an? Wenn das nicht utf-8 wird das so nicht klappen.
Re: umlaute
Verfasst: Dienstag 19. Oktober 2010, 20:59
von noisefloor
Hallo,
bei mir (mit Bottle) funktioniert es, wenn ich in der HTML-Datei die Zeichenkodierung korrekt definieren (z.B. utf-8). Außerdem kannst du bei HTML-Formularen
accpet-charset fest legen.
Gruß, noisefloor