Preciso substituir todos os caracteres não ASCII (\ x00- \ x7F) por um espaço. Estou surpreso que isso não seja fácil no Python, a menos que esteja faltando alguma coisa. A função a seguir simplesmente remove todos os caracteres não ASCII:
def remove_non_ascii_1(text):
return ''.join(i for i in text if ord(i)<128)
E este substitui caracteres não ASCII pela quantidade de espaços conforme a quantidade de bytes no ponto de código do caractere (ou seja, o –
caractere é substituído por 3 espaços):
def remove_non_ascii_2(text):
return re.sub(r'[^\x00-\x7F]',' ', text)
Como posso substituir todos os caracteres não ASCII por um único espaço?
Da miríade de semelhantes SO perguntas , nenhum endereço de caráter de substituição como oposição a descascar , e , adicionalmente, tratar todos os caracteres não-ascii não um personagem específico.
–
. É esse cara .