I'm using BeautifulSoup to parse names from multiple HTML files, some files contain celebrities' names in other languages like Spanish and occasionally have accents.

I've tried using 2 functions to strip the accents that seem to be working properly *('Jesús' -> 'Jesus')* but when I start calling the function with data gathered with beautifulsoup I don't get the same result *('Jesús' -> 'JesAos')*

my code:

```
def strip_accents_1(text):

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

def strip_accents_2(text):
   return unicodedata.normalize('NFKD', text).encode('ascii', 'ignore').decode('utf-8', 'ignore')

# This works correctly
print(strip_accents_1('Jesús'))

def html_imp(h):

    soup = BeautifulSoup(open(h), features = "lxml")

    tdTags = []
    values =[]

    sort = []

    for i in range(4,40):
     for i in soup.find_all('td'):
         tdTags.append(i.text) 

    for i in [7,25,9,15,5,11]:
     values.append(tdTags[i])

    # Original name with accent
    sort.append(values[3])  

    # Strip accents
    sort.append(strip_accents_1(values[3]))

    sort.append(strip_accents_2(values[3]))

    print(sort)

    return sort

```

**Output:**

```
Jesus
['Jesús', 'JesAs', 'JesAos']

```

**HTML fragment :**

```
<TD WIDTH="80" ALIGN="center">Jesús</TD>

```

What's keeping the **strip\_accents** functions from working while handling the HTML fragment?