This is a pretty big wart left over from the Python 2 days. Lets deprecate (or even change it). We had some agreement that encoding="bytes" should just not exist. User converters should simply accept the unicode string and call field.encode("latin1") if they need to continue working with bytes.