53 lines · 1.4 KB · Python
RawDownload
#!/usr/bin/env python """ Compare the output of two codecs. (c) Copyright 2005, Marc-Andre Lemburg (mal@lemburg.com).     Licensed to PSF under a Contributor Agreement. """import sys def compare_codecs(encoding1, encoding2):     print 'Comparing encoding/decoding of   %r and   %r' % (encoding1, encoding2)    mismatch = 0    # Check encoding    for i in range(sys.maxunicode):        u = unichr(i)        try:            c1 = u.encode(encoding1)        except UnicodeError, reason:            c1 = '<undefined>'        try:            c2 = u.encode(encoding2)        except UnicodeError, reason:            c2 = '<undefined>'        if c1 != c2:            print ' * encoding mismatch for 0x%04X: %-14r != %r' % \                  (i, c1, c2)            mismatch += 1    # Check decoding    for i in range(256):        c = chr(i)        try:            u1 = c.decode(encoding1)        except UnicodeError:            u1 = u'<undefined>'        try:            u2 = c.decode(encoding2)        except UnicodeError:            u2 = u'<undefined>'        if u1 != u2:            print ' * decoding mismatch for 0x%04X: %-14r != %r' % \                  (i, u1, u2)            mismatch += 1    if mismatch:        print        print 'Found %i mismatches' % mismatch    else:        print '-> Codecs are identical.' if __name__ == '__main__':    compare_codecs(sys.argv[1], sys.argv[2])