mirror of
https://github.com/elliotnunn/ToolboxToolbox.git
synced 2024-09-23 22:56:19 +00:00
25 lines
726 B
Python
25 lines
726 B
Python
|
#!/usr/bin/env python3
|
||
|
|
||
|
import unicodedata
|
||
|
|
||
|
col_widths = [7, 54, 20]
|
||
|
rows = [['MacRom', 'UTF-8 NFC', 'UTF-8 NFD']]
|
||
|
for i in range(256):
|
||
|
rows.append(['[%02X]' % i])
|
||
|
for form in ('NFC', 'NFD'):
|
||
|
unistr = bytes([i]).decode('mac_roman')
|
||
|
unistr = unicodedata.normalize(form, unistr)
|
||
|
codepoints = []
|
||
|
for cp in unistr:
|
||
|
utf8hex = cp.encode('utf-8').hex().upper()
|
||
|
name = unicodedata.name(cp, 'U+%04X' % ord(cp))
|
||
|
codepoints.append(f'[{utf8hex}] {name}')
|
||
|
rows[-1].append(' + '.join(codepoints))
|
||
|
|
||
|
for row in rows:
|
||
|
accum = ''
|
||
|
for wid, col in zip(col_widths, row):
|
||
|
accum += (col + ' ').ljust(wid)
|
||
|
accum = accum.rstrip()
|
||
|
print(accum)
|