Tengo una base de datos en MSSQL que estoy migrando a SQLite/Django. Estoy usando pymssql para conectarme a la base de datos y guardar un campo de texto en la base de datos SQLite local.Convertir o eliminar caracteres Unicode "ilegales"
Sin embargo, para algunos personajes explota. Recibo quejas de esta manera:
UnicodeDecodeError: 'ascii' codec can't decode byte 0x97 in position 1916: ordinal not in range(128)
¿Hay alguna manera de que pueda convertir los caracteres Unicode a las versiones correctas? ¿O quitárselos?
De hecho, debes saber en qué codificación está el texto. No hay forma de evitar esto. En su caso, afortunadamente, su mensaje de error lo hace obvio. Es casi seguro apostar que estás lidiando con la molesta cp1252 de Microsoft, debido a la presencia de un personaje de 0x97. En latin-1, este punto de código tiene un carácter de control, "FIN DEL ÁREA PROTEGIDA", que casi nunca se usa. Nunca verá este error preciso con utf-8, ya que 0x97 no es un byte líder en caracteres válido. En cp1252, por otro lado, es el emdash muy común. – jcdyer