/
githubmirror
/
cpython
Обзор
Документация
Войти
/
githubmirror
/
cpython
Код
Запросы
0
Пакеты
0
Релизы
0
Аналитика
Безопасность
v3.14.4
Tools/unicode/comparecodecs.py
53 строки
1 KB
Serhiy Storchaka
Issue #19936: Added executable bits or shebang lines to Python scripts which
16 янв 2014, 19:15
16 янв 2014, 19:15
b992a0e
Код
Авторство
О чём код?
#!/usr/bin/env python3 """ 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+1): u = chr(i) try: c1 = u.encode(encoding1) except UnicodeError as reason: c1 = '<undefined>' try: c2 = u.encode(encoding2) except UnicodeError as 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 = bytes([i]) try: u1 = c.decode(encoding1) except UnicodeError: u1 = '<undefined>' try: u2 = c.decode(encoding2) except UnicodeError: u2 = '<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])