I'm thinking of making this downstream change to Fedora's site.py (and
possibly in future RHEL releases) so that the default encoding
automatically picks up the encoding from the locale:

 def setencoding():
     """Set the string encoding used by the Unicode implementation.  The
     default is 'ascii', but if you're willing to experiment, you can
     change this."""
     encoding = "ascii" # Default value set by _PyUnicode_Init()
-    if 0:
+    if 1:
         # Enable to support locale aware default string encodings.
         import locale
         loc = locale.getdefaultlocale()
         if loc[1]:
             encoding = loc[1]
     if 0:
         # Enable to switch off string to Unicode coercion and implicit
         # Unicode to string conversion.
         encoding = "undefined"
     if encoding != "ascii":
         # On Non-Unicode builds this will raise an AttributeError...
         sys.setdefaultencoding(encoding) # Needs Python Unicode build !

I've written up extensive notes on the change and the history of the
issue here:
https://fedoraproject.org/wiki/Features/PythonEncodingUsesSystemLocale

Please let me know if there are any errors on that page!

The aim is to avoid strange behavior changes when running a script
within a shell pipeline/cronjob as opposed to at a tty (and to capture
some of the bizarre cornercases, for example, I found the behavior of
the pango/pygtk modules particularly surprising).

I mention it here as a "heads-up" about the change:
  - in case other distributions may want to do the same (or already do
so, though in my very brief survey no-one else seemed to), and
  - in case doing so breaks things in a way I'm not expecting; can
anyone see any flaws in my arguments?
  - in case other people find my notes on the issue useful

Hope this is helpful; can anyone see any potential problems with this
change?

Dave


_______________________________________________
Python-Dev mailing list
Python-Dev@python.org
http://mail.python.org/mailman/listinfo/python-dev
Unsubscribe: 
http://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com

Reply via email to