Ich habe eine Datenbank in MSSQL, die ich nach SQLite / Django portiere. Ich verwende Pymssql, um eine Verbindung zur Datenbank herzustellen und ein Textfeld in der lokalen SQLite-Datenbank zu speichern.
Für einige Charaktere explodiert es jedoch. Ich bekomme Beschwerden wie folgt:
%Vor%Gibt es eine Möglichkeit, die Zeichen in richtige Unicode-Versionen umzuwandeln? Oder streiche sie aus?
Sobald Sie die Zeichenfolge bytes s
haben, müssen Sie sie nicht explizit als Unicode-Objekt verwenden, sondern explizit mit dem richtigen Codec konvertieren, z. B .:
und verwenden Sie u
anstelle von s
im Code, der auf diesen Punkt folgt (vermutlich der Teil, der in sqlite schreibt). Das heißt, latin-1
ist die Kodierung, mit der ursprünglich die Byte-Zeichenkette erstellt wurde - es ist für uns unmöglich zu erraten, also versuchen Sie es herauszufinden; -).
Als allgemeine Regel schlage ich vor: Verarbeiten Sie in Ihren Anwendungen keinen Text als codierte Byte-Strings - dekodieren Sie sie direkt nach der Eingabe in Unicode-Objekte und kodieren Sie sie, falls notwendig, direkt vor der Ausgabe wieder in Byte-Strings.