¿Cómo reemplazar caracteres Unicode no válidos en una cadena en Python?
Hasta donde sé, es el concepto de python tener solo caracteres válidos en una cadena, pero en mi caso el sistema operativo entregará cadenas con codificaciones no válidas en los nombres de ruta con los que tengo que tratar. Así que termino con cadenas que contienen caracteres que no son unicode.
Para corregir estos problemas, necesito mostrar estas cadenas de alguna manera. Lamentablemente, no puedo imprimirlos porque contienen caracteres no Unicode. ¿Hay alguna manera elegante de reemplazar estos caracteres de alguna manera para al menos tener una idea del contenido de la cadena?
Mi idea sería procesar estas cadenas carácter por carácter y verificar si el carácter almacenado es realmente unicode válido. En caso de un carácter no válido, me gustaría usar un cierto símbolo Unicode. ¿Pero cómo puedo hacer esto? Utilizandocodecs
parece no ser adecuado para ese propósito: ya tengo una cadena, devuelta por el sistema operativo, y no una matriz de bytes. Convertir una cadena en una matriz de bytes parece implicar una decodificación que fallará en mi caso, por supuesto. Entonces parece que estoy atascado.
¿Tiene algún consejo para mí sobre cómo crear una cadena de reemplazo?