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.Konvertieren oder Entfernen von "illegalen" Unicode-Zeichen
Jedoch für einige Zeichen explodiert es. Ich bekomme Beschwerden wie folgt:
UnicodeDecodeError: 'ascii' codec can't decode byte 0x97 in position 1916: ordinal not in range(128)
Gibt es eine Möglichkeit, die Zeichen in richtige Unicode-Versionen konvertieren? Oder sie ausziehen?
In der Tat müssen Sie wissen, in welcher Kodierung Ihr Text ist. Es gibt so ziemlich keinen Weg. In Ihrem Fall macht Ihre Fehlermeldung glücklicherweise deutlich. Es ist fast sicher, dass Sie mit Microsofts nervigem cp1252 zu tun haben, da ein 0x97-Zeichen vorhanden ist. In latin-1 enthält dieser Codepunkt das Kontrollzeichen "ENDE DER GEWACHTEN FLÄCHE", das fast nie verwendet wird. Sie werden diesen genauen Fehler mit utf-8 nie sehen, da 0x97 kein gültiges zeichenführendes Byte ist. In cp1252 ist es andererseits die sehr häufige. – jcdyer