#!/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
|