dbf files have a codepage attribute. It sounds like it has not been correctly set with your file. Do you know which code page was used to create the data? If so, you can override the dbf's setting when you open the file:
table = dbf.Table('dbf_file', codepage='cp437')
cp437
is just an example -- use whatever is appropriate.
To see the current codepage of a dbf file (assuming you didn't override on opening) use:
table.codepage
If you specify the wrong codepage when you open the file, then the non-ascii data could be incorrect (e.g. your o with umlaut may end up as an n with tilde).