How to replace accented characters?

36,496

Solution 1

Please Use the below code:

import unicodedata

def strip_accents(text):
    try:
        text = unicode(text, 'utf-8')
    except NameError: # unicode is a default on python 3 
        pass

    text = unicodedata.normalize('NFD', text)\
           .encode('ascii', 'ignore')\
           .decode("utf-8")

    return str(text)

s = strip_accents('àéêöhello')

print s

Solution 2

import unidecode

somestring = "àéêöhello"

#convert plain text to utf-8
u = unicode(somestring, "utf-8")
#convert utf-8 to normal text
print unidecode.unidecode(u)

Output:

aeeohello

Solution 3

Alpesh Valaki's answer is the "nicest", but I had to do some adjustments for it to work:

# I changed the import
from unidecode import unidecode

somestring = "àéêöhello"

#convert plain text to utf-8
# replaced unicode by unidecode
u = unidecode(somestring, "utf-8")

#convert utf-8 to normal text
print(unidecode(u))
Share:
36,496
Admin
Author by

Admin

Updated on July 05, 2021

Comments

  • Admin
    Admin almost 3 years

    My output looks like 'àéêöhello!'. I need change my output like this 'aeeohello', Just replacing the character à as a like this.