[1.8.x] Fixed #17686, refs #17816 -- Added "Files" section to Unicode topic.

Thanks Fako Berkers for help with the patch.

Backport of 25b912abbe from master
This commit is contained in:
Florian Demmer 2015-11-07 15:35:07 +01:00 committed by Tim Graham
parent 8b99603120
commit da20004a61
3 changed files with 55 additions and 21 deletions

View file

@ -74,6 +74,20 @@ should put in this file, and what else you can add to it.
or by :ref:`using mod_wsgi daemon mode<daemon-mode>` and ensuring that each
site runs in its own daemon process.
.. admonition:: Fixing ``UnicodeEncodeError`` for file uploads
If you get a ``UnicodeEncodeError`` when uploading files with file names
that contain non-ASCII characters, make sure Apache is configured to accept
non-ASCII file names::
export LANG='en_US.UTF-8'
export LC_ALL='en_US.UTF-8'
A common location to put this configuration is ``/etc/apache2/envvars``.
See the :ref:`unicode-files` section of the Unicode reference guide for
details.
Using a virtualenv
==================
@ -222,24 +236,3 @@ Authenticating against Django's user database from Apache
Django provides a handler to allow Apache to authenticate users directly
against Django's authentication backends. See the :doc:`mod_wsgi authentication
documentation </howto/deployment/wsgi/apache-auth>`.
If you get a UnicodeEncodeError
===============================
If you're taking advantage of the internationalization features of Django (see
:doc:`/topics/i18n/index`) and you intend to allow users to upload files, you must
ensure that the environment used to start Apache is configured to accept
non-ASCII file names. If your environment is not correctly configured, you
will trigger ``UnicodeEncodeError`` exceptions when calling functions like
the ones in :mod:`os.path` on filenames that contain non-ASCII characters.
To avoid these problems, the environment used to start Apache should contain
settings analogous to the following::
export LANG='en_US.UTF-8'
export LC_ALL='en_US.UTF-8'
Consult the documentation for your operating system for the appropriate syntax
and location to put these configuration items; ``/etc/apache2/envvars`` is a
common location on Unix platforms. Once you have added these statements
to your environment, restart Apache.

View file

@ -108,6 +108,17 @@ Example ini configuration file usage::
uwsgi --ini uwsgi.ini
.. admonition:: Fixing ``UnicodeEncodeError`` for file uploads
If you get a ``UnicodeEncodeError`` when uploading files with file names
that contain non-ASCII characters, make sure uWSGI is configured to accept
non-ASCII file names by adding this to your ``uwsgi.ini``::
env = LANG='en_US.UTF-8'
See the :ref:`unicode-files` section of the Unicode reference guide for
details.
See the uWSGI docs on `managing the uWSGI process`_ for information on
starting, stopping and reloading the uWSGI workers.