Can you explain a bit more about what you want to do with this text data. Your errors are happening when you print it out and this is expected (in Python 2, though in Python 3 you don't need to worry as much as strings are unicode objects).
For example: I can read in some data with non-ascii characters and write it out to another table with no issues, but if I try to print it (or write it to a text file/spreadsheet) without encoding it, I get the dreaded UnicodeEncodeError. If you want to print it/output it you need to encode it.
table,field = 'c:/temp/default.gdb/test', 'testfield'
with arcpy.da.SearchCursor(table,field) as rows:
for row in rows:
data = row[0]
break
print('{} = tablename; {} = fieldvalue'.format(table,data))
with open('c:/temp/test.txt', 'w') as t:
t.write(data)
print('{} = tablename; {} = fieldvalue'.format(table,data.encode('utf-8')))
Hammers sometimes miss and hit you on the thumb. You can try and replace most of the usual non-ASCII characters, but you'll always run across another...
Your best bet is deal with it as unicode then encode it on output.
If you absolutely must force it to ascii, t ry the hammer (manual replacement), if that fails, just strip them out:
data.encode('ascii', 'ignore')
You could also look at a 3rd party library that takes Unicode data and tries to represent it in ASCII characters - Unidecode · PyPI