mojibake-tools/can_encode.py
Juhani Krekelä 0e10b7cfad Prompt user for string if can_encode.py is invoked without an argument
This allows usage on Windows, which by default does not support unicode
fully in the command line.
2022-12-30 17:39:20 +01:00

32 lines
696 B
Python

import sys
import char_encodings
if len(sys.argv) == 2:
decoded = sys.argv[1]
else:
decoded = input()
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()}')