Necesito reemplazar todos los caracteres que no sean ASCII (\ x00- \ x7F) con un espacio. Me sorprende que esto no sea fácil en Python, a menos que me falte algo. La siguiente función simplemente elimina todos los caracteres que no son ASCII:
def remove_non_ascii_1(text):
return ''.join(i for i in text if ord(i)<128)
Y este reemplaza los caracteres no ASCII con la cantidad de espacios según la cantidad de bytes en el punto de código de caracteres (es decir, el –
carácter se reemplaza con 3 espacios):
def remove_non_ascii_2(text):
return re.sub(r'[^\x00-\x7F]',' ', text)
¿Cómo puedo reemplazar todos los caracteres no ASCII con un solo espacio?
De la miríada de preguntas SO similares , ninguna aborda el reemplazo de caracteres en lugar de la eliminación , y adicionalmente aborda todos los caracteres no ascii que no son un carácter específico.
–
. Es este chico .