Weiß jemand wie man mit dem encoding bei einem Datei Upload umgeht?
Man muß wohl Textdateien anders handhaben als Binäre Dateien, oder?
django: Dateiupload und unicode...
-
- Python-Forum Veteran
- Beiträge: 16025
- Registriert: Freitag 20. Juni 2003, 16:30
- Kontaktdaten:
Nein, wieso? Du kannst Textdateien als binär ansehen, nur hat dann der Client beim Download die gleichen Zeilenenden ankommen wie der Uploader verwendet hat. Hängt halt ab ob das ein Problem für dich ist.jens hat geschrieben:Man muß wohl Textdateien anders handhaben als Binäre Dateien, oder?
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
- jens
- Python-Forum Veteran
- Beiträge: 8502
- Registriert: Dienstag 10. August 2004, 09:40
- Wohnort: duisburg
- Kontaktdaten:
Hm. Also ich glaube so einfach ist das nicht.
Ich nehme eine Datei entgegen und speicher die mit "wb" ab. Danach kann der User die Datei editieren, dazu nutzte ich newforms:
Lese ich die Datei mit "rb" erhalte ich einen String. Das newforms Feld bleibt allerdings leer, wenn im Dateiinhalt non-ASCII Zeichen waren...
Ich könnte natürlich versuchen im Upload-Formular einfach accept-charset="utf-8" einzutragen und dann immer alles in UTF-8 machen. Wenn aber dann ein User eine Binär Datei hochläd, dürfte das schief gehen.
Sollte ich dann also hingehen und eine Checkbox im Upload Formular einfügen, ob es sich um eine Binärdatei handelt, oder eine Text-Datei?
EDIT: Nochmal nachgelesen: http://de.selfhtml.org/html/formulare/d ... nkodierung
Ich nehme eine Datei entgegen und speicher die mit "wb" ab. Danach kann der User die Datei editieren, dazu nutzte ich newforms:
Code: Alles auswählen
content = forms.CharField(
widget=forms.Textarea(attrs = {'cols': '80', 'rows': '25'})
)
Ich könnte natürlich versuchen im Upload-Formular einfach accept-charset="utf-8" einzutragen und dann immer alles in UTF-8 machen. Wenn aber dann ein User eine Binär Datei hochläd, dürfte das schief gehen.
Sollte ich dann also hingehen und eine Checkbox im Upload Formular einfügen, ob es sich um eine Binärdatei handelt, oder eine Text-Datei?
EDIT: Nochmal nachgelesen: http://de.selfhtml.org/html/formulare/d ... nkodierung
- jens
- Python-Forum Veteran
- Beiträge: 8502
- Registriert: Dienstag 10. August 2004, 09:40
- Wohnort: duisburg
- Kontaktdaten:
Das mit dem accept-charset="utf-8" bringt IMHO nicht wirklich was...
Gerade läuft eine Diskussion auf django-developers zu dem Thema:
http://groups.google.com/group/django-d ... 582609b9e/
Gerade läuft eine Diskussion auf django-developers zu dem Thema:
http://groups.google.com/group/django-d ... 582609b9e/
-
- User
- Beiträge: 1790
- Registriert: Donnerstag 28. Oktober 2004, 16:33
- Wohnort: Graz, Steiermark - Österreich
- Kontaktdaten:
Nein. Da gehts um eine neue Upload API. Das was django mit uploads macht stimmt schon. Es ist deine Aufgabe das Encoding zu bekommen und die Daten zu verarbeiten.jens hat geschrieben:Gerade läuft eine Diskussion auf django-developers zu dem Thema:
TUFKAB – the user formerly known as blackbird
- jens
- Python-Forum Veteran
- Beiträge: 8502
- Registriert: Dienstag 10. August 2004, 09:40
- Wohnort: duisburg
- Kontaktdaten:
Ja und nein. Es geht zum größten Teil um die neue API, aber zwischendurch auch um das Encoding Problem:
http://groups.google.com/group/django-d ... 05d62337a4
Es ist schon richtig, das ich mich um das Encoding kümmern muß. Auf jeden Fall haben tests gezeigt, das ich nicht einfach alles als "binary" behandeln kann und es geht dann das editieren...
http://groups.google.com/group/django-d ... 05d62337a4
Es ist schon richtig, das ich mich um das Encoding kümmern muß. Auf jeden Fall haben tests gezeigt, das ich nicht einfach alles als "binary" behandeln kann und es geht dann das editieren...
-
- User
- Beiträge: 1790
- Registriert: Donnerstag 28. Oktober 2004, 16:33
- Wohnort: Graz, Steiermark - Österreich
- Kontaktdaten:
Nein, da ging es um das Dateinamen Handling. Siehe weiter unten.jens hat geschrieben:Ja und nein. Es geht zum größten Teil um die neue API, aber zwischendurch auch um das Encoding Problem:
http://groups.google.com/group/django-d ... 05d62337a4
Natürlich kannst du das nicht. Unicode sind nicht Binärdaten. Was du tun musst ist den Mimetype des eingehenden Uploads anzusehen und danach zu entscheiden wie du verfahren willst.Es ist schon richtig, das ich mich um das Encoding kümmern muß. Auf jeden Fall haben tests gezeigt, das ich nicht einfach alles als "binary" behandeln kann und es geht dann das editieren...
TUFKAB – the user formerly known as blackbird