It's a common problem in GIS to have a shapefile that was encoded using a character set other than the standard iso-8859-1 but lacks any record of it or has an erroneous record. You could guess at its character set and try a decoding that doesn't fail but has garbage in its output. The Japanese term for this is Mojibake. Ned Batchelder introduced me to the term in his Pragmatic Unicode presentation. It's easy to demonstrate in Python.
Fiona's open() function has an encoding keyword argument that is intended to let developers override the missing or erronenous information for a shapefile. There's been a regression in Fiona recently and users began to report unexpetced mojibake symptoms. They were using the encoding argument property but seeing garbage displayed. This regression has been fixed in Fiona 1.7.11. Upgrade as soon as you can.