def main():
    import locale
    import os
    import sys

    def get_file_encoding(f):
        if hasattr(f, "encoding"):
            return f.encoding
        else:
            return "not set"

    print "sys.stdin.encoding:", get_file_encoding(sys.stdin)
    print "sys.stdout.encoding:", get_file_encoding(sys.stdout)
    print "sys.stderr.encoding:", get_file_encoding(sys.stderr)
    print "sys.getdefaultencoding():", sys.getdefaultencoding()
    print "sys.getfilesystemencoding():", sys.getfilesystemencoding()
    print "locale.getpreferredencoding():", locale.getpreferredencoding()

if __name__ == "__main__":
    main()

# Debian UTF-8 environment:
#
# % LANG=en_GB.UTF-8 python tmp/unicodetest.py
# sys.stdin.encoding: UTF-8
# sys.stdout.encoding: UTF-8
# sys.stderr.encoding: None
# sys.getdefaultencoding(): ascii
# sys.getfilesystemencoding(): UTF-8
# locale.getpreferredencoding(): UTF-8

# Debian ISO-8859-1 environment:
#
# % LANG=en_GB.ISO-8859-1 python tmp/unicodetest.py
# sys.stdin.encoding: ISO-8859-1
# sys.stdout.encoding: ISO-8859-1
# sys.stderr.encoding: None
# sys.getdefaultencoding(): ascii
# sys.getfilesystemencoding(): ISO-8859-1
# locale.getpreferredencoding(): ISO-8859-1

# Debian UTF-8 environment, stdin/stdout redirected:
#
# % LANG=en_GB.UTF-8 python tmp/unicodetest.py </dev/null >unicodetest.out
# % cat unicodetest.out
# sys.stdin.encoding: None
# sys.stdout.encoding: None
# sys.stderr.encoding: None
# sys.getdefaultencoding(): ascii
# sys.getfilesystemencoding(): UTF-8
# locale.getpreferredencoding(): UTF-8

# Windows 2000 command shell:
#
# H:\>python unicodetest.py
# sys.stdin.encoding: cp850
# sys.stdout.encoding: cp850
# sys.stderr.encoding: None
# sys.getdefaultencoding(): ascii
# sys.getfilesystemencoding(): mbcs
# locale.getpreferredencoding(): cp1252

# Windows 2000, IDLE:
# sys.stdin.encoding: cp1252
# sys.stdout.encoding: cp1252
# sys.stderr.encoding: cp1252
# sys.getdefaultencoding(): ascii
# sys.getfilesystemencoding(): mbcs
# locale.getpreferredencoding(): cp1252
