Como substituir caracteres unicode inválidos em uma string em Python?
Até onde eu sei, é o conceito de python ter apenas caracteres válidos em uma string, mas, no meu caso, o sistema operacional entregará strings com codificações inválidas nos nomes dos caminhos com os quais tenho que lidar. Então, acabo com strings que contêm caracteres que não são unicode.
Para corrigir esses problemas, preciso exibir essas seqüências de alguma forma. Infelizmente, não posso imprimi-los porque eles contêm caracteres não unicode. Existe uma maneira elegante de substituir esses caracteres de alguma forma, para pelo menos ter uma idéia do conteúdo da string?
Minha idéia seria processar essas seqüências de caracteres por caractere e verificar se o caractere armazenado é realmente um unicode válido. No caso de um caractere inválido, eu gostaria de usar um determinado símbolo unicode. Mas como posso fazer isso? Usandocodecs
parece não ser adequado para esse fim: eu já tenho uma string retornada pelo sistema operacional e não uma matriz de bytes. Converter uma cadeia de caracteres em bytes parece envolver decodificação que falhará no meu caso, é claro. Então parece que estou preso.
Você tem alguma dica para mim sobre como criar uma string de substituição?