mojibake-tools/can_encode.py

30 lines
647 B
Python

import sys
import char_encodings
decoded = sys.argv[1]
singlebyte = {}
multibyte = {}
for encoding in char_encodings.encodings:
try:
encoded = decoded.encode(encoding)
except UnicodeEncodeError:
continue
if len(encoded) == len(decoded):
if encoded not in singlebyte: singlebyte[encoded] = []
singlebyte[encoded].append(encoding)
else:
if encoded not in multibyte: multibyte[encoded] = []
multibyte[encoded].append(encoding)
for encoded, encodings in singlebyte.items():
print(f'{",".join(encodings)}: {encoded.hex()}')
print()
for encoded, encodings in multibyte.items():
print(f'{",".join(encodings)}: {encoded.hex()}')