Skip to content

Instantly share code, notes, and snippets.

@Tantas
Last active June 8, 2018 18:18
Show Gist options
  • Save Tantas/f8cbc4517558097ba4124e0682fc6b13 to your computer and use it in GitHub Desktop.
Save Tantas/f8cbc4517558097ba4124e0682fc6b13 to your computer and use it in GitHub Desktop.
This replaces or removes special characters. Useful when a font cannot reproduce.
# Some fonts may not be able to represent all characters.
# This replaces or removes the offending characters.
# Get the contents.
f = open('translate.txt', 'r')
file_contents = f.read()
f.close()
# Escape all special characters.
escaped_string = file_contents.encode('ascii', 'xmlcharrefreplace').decode('utf-8')
# Replace all known characters.
escaped_string = escaped_string.replace('à', 'à')
escaped_string = escaped_string.replace('à', 'à')
escaped_string = escaped_string.replace('É', 'É')
escaped_string = escaped_string.replace('è', 'è')
escaped_string = escaped_string.replace('é', 'é')
escaped_string = escaped_string.replace('é', 'é')
escaped_string = escaped_string.replace('ê', 'ê')
escaped_string = escaped_string.replace('ô', 'ô')
escaped_string = escaped_string.replace('û', 'û')
escaped_string = escaped_string.replace('’', '’')
escaped_string = escaped_string.replace('“', '"')
escaped_string = escaped_string.replace('”', '"')
escaped_string = escaped_string.replace('«', '«')
escaped_string = escaped_string.replace('»', '»')
escaped_string = escaped_string.replace('​', '') # Zero with space.
# Verify that all characters have been converted.
missing_entry = escaped_string.find('&#')
if missing_entry != -1:
end = escaped_string.find(';', missing_entry) + 1
print('Missing conversion at ' + str(missing_entry) + ': ' + escaped_string[missing_entry:end])
else:
print(escaped_string)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment