The decoder detection seems to focus on 2-4 byte encoding. Many times you will get a text in iso-8859-1 or cp-1250 or other 1 byte encoding and none of this is covered there. I might not make sense to extend the decoder if it is not meant for 1 byte encoding. In that case adding the alternative decoder to contrib would be a better idea.
BTW, you the best way to do the conversion is probably customization of the file store method. In your model you do: Field("my_file", "upload", autodelete=True, custom_store=store_my_file) And then implement store_my_file based on the original Field.store method: http://code.google.com/p/web2py/source/browse/gluon/dal.py#7334