#!/usr/bin/env python # ----------------------------------------------------------------------- # Copyright (C) 2004 Gustavo Sverzut Barbieri # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, but # WITHOUT ANY WARRANTY; without even the implied warranty of MER- # CHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General # Public License for more details. # ----------------------------------------------------------------------- # # This code is part of the pytvgrab project: # http://pytvgrab.sourceforge.net # # ----------------------------------------------------------------------- # Subversion Information, do not edit # # $Rev: 291 $ # $LastChangedDate: 2004-11-21 23:37:37 +1100 (Sun, 21 Nov 2004) $ # $LastChangedRevision: 291 $ # $LastChangedBy: ottrey $ # # $Log: $ # import locale LC_ALL = locale.setlocale(locale.LC_ALL, '') encoding = None if LC_ALL == 'C': encoding = 'latin-1' else: try: encoding = LC_ALL.split('.')[1] # The encoding assignment WILL fail when LC_ALL="Swedish_Sweden.1252" # There is no "1252" encoding in python if encoding == "1252": encoding = "windows.1252" # just to be sure, test if if actually works: unicode("test",encoding).encode(encoding) except: encoding = 'latin-1' if not encoding: encoding = 'latin-1' def toprint( msg ): """Fix message encoding to print.""" if isinstance( msg, str ): return msg elif isinstance( msg, unicode ): # If there's an encoding error, just replace non-converted chars with '?' msg = msg.encode( encoding, "replace" ) else: # When an object is sent in (Tag) it will probably contain unicode # So it will first to be converted to a unicode string, then # encoded to str msg = unicode(msg).encode( encoding, "replace" ) return msg # toprint