Just spotted this in the new unicode documentation (from the unicode branch):
Do not be fooled into thinking that if you DEFAULT_CHARSET setting is set
to something other than utf-8 you can use that encoding in your
bytestrings! The DEFAULT_CHARSET only applies to the strings generated as
the result of template rendering (and email). Django will always assume UTF-8
encoding for internal bytestrings. The reason for this is that the
DEFAULT_CHARSET setting is not actually under your control (if you are the
application developer). It is under the control of the person installing and
using your application and if they choose a different setting, your code must
still continue to work. Ergo, it cannot rely on that setting.
http://code.djangoproject.com/browser/django/branches/unicode/docs/unicode.txt?rev=5330#L57
How about renaming that setting to something more clear, like OUTPUT_CHARSET or DEFAULT_OUTPUT_CHARSET?