Browse files

[1.7.x] Fixed #22880 -- Added FAQ entry about UnicodeDecodeError

Thanks Víðir Valberg Guðmundsson for the report and
Tim Graham for the review.
Backport of 460ec09 from master.
  • Loading branch information...
1 parent 48a2e02 commit 198ce3073c763ab17cb5e8d012d64d8ea756282d @claudep claudep committed Jun 23, 2014
Showing with 35 additions and 0 deletions.
  1. +35 −0 docs/faq/troubleshooting.txt
35 docs/faq/troubleshooting.txt
@@ -49,3 +49,38 @@ use the full path to the file, like so:
``python C:\pythonXY\Scripts\``.
.. _virtualenv:
+I'm getting a ``UnicodeDecodeError``. What am I doing wrong?
+This class of errors happen when a bytestring containing non-ASCII sequences is
+transformed into a Unicode string and the specified encoding is incorrect. The
+output generally looks like this::
+ UnicodeDecodeError: 'ascii' codec can't decode byte 0x?? in position ?:
+ ordinal not in range(128)
+The resolution mostly depends on the context, however here are two common
+pitfalls producing this error:
+* Your system locale may be a default ASCII locale, like the "C" locale on
+ UNIX-like systems (can be checked by the ``locale`` command). If it's the
+ case, please refer to your system documentation to learn how you can change
+ this to a UTF-8 locale.
+* You created raw bytestrings, which is easy to do on Python 2::
+ my_string = 'café'
+ Either use the ``u''`` prefix or even better, add the
+ ``from __future__ import unicode_literals`` line at the top of your file
+ so that your code will be compatible with Python 3.2 which doesn't support
+ the ``u''`` prefix.
+Related resources:
+* :doc:`Unicode in Django </ref/unicode>`

0 comments on commit 198ce30

Please sign in to comment.