Python 3.2+ cgi.FieldStorage() defaults to utf8 when decoding form values. That confused bottle.FormsDict() because WSGI strings "must contain only code points representable in ISO-8859-1 encoding". Now bottle forces cgi.FieldStorage() to use ISO-8859-1 instead and re-encodes form-values on-demand with the user-specified input encoding a intended.
The Python 3.x unicode problem was more complex than I thought. I had to re-implement urllib.parse_qsl to work around an encoding problem in 3.1 and change the way bottle handles query-strings in subtle ways. Again, please read this before upgrading: http://bottlepy.org/docs/dev/tutorial.html …
There is a lot of new stuff this time: A CLI interface, new routing syntax and lots of convenient helpers for request/response objects and templates. The change-log will tell you more.
Bottle 0.9.7 (bugfix release) is available. The bug: Loading a template encoded with a codec other than the system default in a Python 3.x environment raised an unicode error under certain circumstances. So, this release is optional. Ignore it if you want :)