Konvertiere oder entferne "illegale" Unicode-Zeichen

7

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?

    
Oli 24.03.2010, 15:14
quelle

2 Antworten

11

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 .:

%Vor%

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.

    
Alex Martelli 24.03.2010, 15:22
quelle
11

Wenn Sie dekodieren, übergeben Sie einfach 'ignorieren', um diese Zeichen zu entfernen

es gibt eine andere Art zu strippen / konvertieren diejenigen sind

%Vor%

Test

%Vor%     
YOU 24.03.2010 15:18
quelle

Tags und Links