#! /usr/bin/python3 import sys import os def explicit(s): """Convert a string or bytestring into an unambiguous human-readable string.""" if isinstance(s, str): return 'u"%s"' % (' '.join('U+%04X' % (ord(c),) for c in s)) else: return 'b"%s"' % (' '.join('%02X' % (c,) for c in s)) fse = sys.getfilesystemencoding() print('LANG = %r' % (os.getenv('LANG'),)) print('fse = %r' % (fse,)) print('sys.argv[1] = %s' % explicit(sys.argv[1])) print('re-encoded using UTF-8: %s' % explicit(sys.argv[1].encode('utf-8', 'surrogateescape'))) print('re-encoded using fse: %s' % explicit(sys.argv[1].encode(fse, 'surrogateescape'))) print()