Ich habe eine Reihe von Unicode-Strings in meinen Daten, die ich aus meiner Django-Ansicht in eine Vorlage für die Verwendung in einem JavaScript-Skript übertragen muss, das sie an das Internet hin und her übergibt.
Das Problem ist, dass die Zeichenfolgen in der JavaScript-Unicode-Form dargestellt werden sollen, aber ich bekomme Zeichenfolgen mit einem u -Präfix von python.
Für die Zeichenfolge mężczyźni speichert Python sie beispielsweise als u'm \ u0119 \ u017cczy \ u017ani , aber wenn sie an die Vorlage übergeben wird, em> nicht entfernt das u Präfix, das bei der Verarbeitung Probleme mit JavaScript verursacht. Ich möchte, dass es einfach 'm \ u0119 \ u017cczy \ u017ani' ist, damit der JavaScript-Code in der Vorlage es verwenden kann.
Ich habe versucht mit urqluote, smart_unicode, force_unicode, konnte aber keine Lösung oder sogar einen Hack schlagen.
Was mache ich?
Bearbeiten: Django 1.7+ enthält nicht mehr simplejson . Anstelle von
%Vor%schreibe
%Vor% und dann json
anstelle von simplejson
verwenden.
Sie drucken wahrscheinlich den Python-Ausdruck Ihres Datendiktats und versuchen, ihn in Javascript zu analysieren:
%Vor%Stattdessen könnten Sie Ihre Daten in json exportieren:
%Vor%Und laden Sie die Daten direkt in Javascript:
%Vor%Sie können auch einen Vorlagenfilter erstellen:
%Vor%Und in deiner Vorlage:
%Vor%Beachten Sie, dass Sie mit XSS vorsichtig sein sollten, wenn einige "Daten" von Benutzereingaben stammen, dann sollten Sie sie bereinigen.
Tags und Links python django javascript unicode