]> git.phdru.name Git - mimedecode.git/commitdiff
A patch by Bogdan Maryniuk <bogdan.maryniuk@gmail.com>:
authorOleg Broytman <phd@phdru.name>
Thu, 27 Apr 2006 14:43:18 +0000 (14:43 +0000)
committerOleg Broytman <phd@phdru.name>
Thu, 27 Apr 2006 14:43:18 +0000 (14:43 +0000)
portable way to get the default charset.

git-svn-id: file:///home/phd/archive/SVN/mimedecode@4 a778b35f-2f12-0410-a9f6-9b1356d76ba6

mimedecode.py

index bfee2fe65c0d0c9f001c40c6245b3d9a80c31c17..e596f1d2e681ee4385bd1253293b2ecadd57114b 100755 (executable)
@@ -1,10 +1,5 @@
 #! /usr/local/bin/python -O
-"""Decode MIME message.
-
-Author: Oleg Broytmann <phd@phd.pp.ru>
-Copyright: (C) 2001-2006 PhiloSoft Design
-License: GPL
-"""
+"""Decode MIME message"""
 
 _version = "2.1.0"
 __version__ = "$Revision$"[11:-2]
@@ -13,11 +8,11 @@ __revision__ = "$Id$"[5:-2]
 __author__ = "Oleg Broytmann <phd@phd.pp.ru>"
 __copyright__ = "Copyright (C) 2001-2006 PhiloSoft Design"
 __license__ = "GNU GPL"
-__docformat__ = "epytext en"
 
 
 import sys, os
 import email
+import locale
 
 try:
    from cStringIO import StringIO
@@ -296,7 +291,22 @@ def decode_file(infile):
 
 
 class GlobalOptions:
-   default_charset = sys.getdefaultencoding()
+   # Get a default charset.
+   try:
+      lcAll = locale.setlocale(locale.LC_ALL, '').split('.')
+   except locale.Error, err:
+      print >> sys.stderr, "WARNING:", err
+      lcAll = []
+
+   if len(lcAll) == 2:
+      default_charset = lcAll[1]
+   else:
+      try:
+         default_charset = locale.getpreferredencoding()
+      except locale.Error, err:
+         print >> sys.stderr, "WARNING:", err
+         default_charset = sys.getdefaultencoding()
+
    recode_charset = 1 # recode charset of message body
 
    decode_headers = ["Subject", "From"] # A list of headers to decode