Para empezar tenemos que saber la correspondencia entre caracteres y signos, así que procedemos a abrir word e introducir los caracteres mas utilizados (letras mayúsculas y minúsculas, números, signos de puntuación, espacio) en una tipo de letra normal, con estos creamos una variable que llamaremos decode en nuestro código fuente, luego nuevamente en word cambiamos el tipo de letra por Wingdings y creamos otra variable que llamaremos encode, estas variables tienen que ser string unicode ya que los símbolos usados por la letra Wingdings son de lo mas raros; luego es cuestión de en un bucle ir reemplazando las coincidencias del caracter de encode en la posicion i con el carracter de decode en la misma posición. El script completo seria algo así:
#!/usr/bin/python #!/usr/bin/python # -*- coding: UTF-8 -*- # Por: Jhonatan sneyder Salguero Villa (sney2002@gmail.com) import codecs from os.path import split, splitext def translate(path=""): """" Convertir texto en Wingdings a caracteres normales "" text2decode = codecs.open(path, 'r', 'utf-8').read() decode = u"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789!”?¿¡.,;():/*-+=&%$# @" encode = u"”¿¡" for i in range( len(decode) ): text2decode = text2decode.replace( encode[i], decode[i] ) filename = splitext( split( path )[1] )[0] file = codecs.open('resultado_%s.txt' % filename, 'wb', 'utf-8') file.write( text2decode ) file.close() if __name__ == "__main__": import sys try: file = sys.argv[1] translate( file ) except: print "uso: translate /ruta/archivo"Ahora solo hay que copiar en un editor de texto plano lo que desean convertir, guardarlo y ejecutar el script dándole la ruta al archivo. Si alguien se pregunta por que no utilice el método translate de string, la razón es que la función maketrans no acepta caracteres unicode.
El script tiene algunos defectos como el no manejar excepciones en caso que el archivo en path no exista, solo funciona con este tipo de letra y en cada iteración crear un nuevo string. Como siempre todas las criticas son bienvenidas.
Si no tienen instalado el interprete python, pueden usar este "codificador/decodificador" Wingdings XDDD, esta escrito en javascript así que si usan demasiado texto puede bloquearse.
3 Responses to “Revertir guardado en Wingdings”
Pues al parecer sueño cumplido y la mejor solucion es la primera hasta que descubres que en la caja de en medio puedes decodificar tu texto. ´B( Gracias por la solucion espero sigas facilitandonos la vida yo tambien soy estudiante de sistemas y algun dia le facilitare la vida a alguien mas
Muchas gracias por tu comentario ^^
sos un grossoo no sabes como me salvastes. muchas gracias
Deja una respuesta