bottle: Korrektes Auslesen eines UTF-8 codierten Datensatzes
Verfasst: Freitag 11. Januar 2013, 23:58
Hallo Zusammen,
ich bin gerade dabei zu Testzwecken mir eine Web-App mit bottle zu schreiben, dabei habe ich aber ein Problem mit den Posts, bei denen z.B. Umlaue wie Ä oder Ü nur mit "À" oder einem Zeichen, das wie eine Raute aussieht, dargestellt wird.
Der Code so ist, mit MongoDB und den Templates, voll funktionsfähig, jedoch mit obigem Prob. Ich halte es für ein Codierungsproblem, da ich manuel mir die DB angesehen habe und die Datensätze so schon gespeichert werden, also (denke ich mir) liegt der Fehler iwo in der Speicherung/Übermittlung der Daten. Jedoch weiss ich nicht wo ich (sofern ich das mit .encode()) lösen könnte, die Decodierung ansetzen sollte. Ich schätze mal es ist nur wieder ein Anfängerproblem, was ich gerne übersehe, aber ich weiss da momentan nicht weiter.
Falls mir jmd ein Tipp geben kann bitte mitteilen
ich bin gerade dabei zu Testzwecken mir eine Web-App mit bottle zu schreiben, dabei habe ich aber ein Problem mit den Posts, bei denen z.B. Umlaue wie Ä oder Ü nur mit "À" oder einem Zeichen, das wie eine Raute aussieht, dargestellt wird.
Code: Alles auswählen
#!/usr/bin/python3.2
# -*- coding: utf-8 -*-
import pymongo
from bottle import route, run, debug, template, static_file, request
con = pymongo.Connection('localhost', 27017)
db = con['test_db']
@route('/show')
def show_item():
col = db['test_2']
db_entries = col.find()
output = template('static/template/show_entries', entries=db_entries)
return output
@route('/new', method='GET')
def new_item():
if request.GET.get('save','').strip():
new = request.GET.get('item','').strip()
col = db['test_2']
insert = {'Inhalt': new,
'Thema':'Add'}
#Mein Versuch eines Lösungsansatzes war es hier "new" mit .encode('utf-8') in die DB zu schreiben,
um den Datensatz beim Auslesen mit .decode('utf-8') korrekt auszugeben
col.save(insert)
else:
return template('static/template/make_entry.tpl')
debug(True)
run(port=8110, reloader=True)
Falls mir jmd ein Tipp geben kann bitte mitteilen
