#!/usr/bin/python encodings = [ ("ISO-8859-1", None), ("ISO-8859-2", "Windows-1250"), ("ISO-8859-3", None), ("ISO-8859-4", None), ("ISO-8859-5", "Windows-1251"), ("ISO-8859-6", "Windows-1256"), ("ISO-8859-7", "Windows-1253"), ("ISO-8859-8", "Windows-1255"), ("ISO-8859-9", "Windows-1254"), ("ISO-8859-10", None), ("ISO-8859-11", None), # "Windows-874" ("ISO-8859-13", "Windows-1257"), ("ISO-8859-14", None), ("ISO-8859-15", None), ("ISO-8859-16", None), ] def ordInEnc(c, enc): try: return ord(("%c" % c).decode(enc)) except: return 0xFFFD def generateRow(c, isoEnc, windowsEnc, f): if windowsEnc: f.write('0x%02x%c&#x%x;&#x%x;&#x%x;' % (c, c, ordInEnc(c, isoEnc), ordInEnc(c, windowsEnc), ordInEnc(c, "Windows-1252"))) else: f.write('0x%02x%c&#x%x;&#x%x;' % (c, c, ordInEnc(c, isoEnc), ordInEnc(c, "Windows-1252"))) def generatePage(isoEnc, windowsEnc): f = open(isoEnc + ".htm", "wb") f.write('%s' % (isoEnc, isoEnc)) f.write('') if windowsEnc: f.write('' % (isoEnc, windowsEnc)) else: f.write('' % (isoEnc)) f.write('') for c in range(0x80, 0xA0): generateRow(c, isoEnc, windowsEnc, f) f.write('') for c in range(0xA0, 0x100): generateRow(c, isoEnc, windowsEnc, f) f.write('
HexByte%s as NCR%s as NCRWindows-1252 as NCR
HexByte%s as NCRWindows-1252 as NCR
') f.flush() f.close() for isoEnc, windowsEnc in encodings: generatePage(isoEnc, windowsEnc)