![]() |
Leer lineas de consola de comandos
hola, tengo un programa que hice de consola el cual me devuelve unas líneas de comando que después yo leo y manejo según lo que me pongan, el porblema que yo tengo es a la hora de leer esas lineas,
y es que si hay un caracter especial 'ñ','á'... esa palabra me la deja en blanco, por lo que he visto el problema esta en 'OutputLine := WideString(Buffer) ; ' he probado a cambiar el wideString por string UTF8Encode... y no me han funcionado.
|
¿Con qué versión de Delphi estás trabajando?
|
Cita:
|
Pensaba que tal vez era más antigua.
Tendrás que hacer pruebas cambiando codificación. Yo creo que puede ir por ahí... |
El problema esta en esta linea:
Ese cast no convierte correctamente texto con acentos o caracteres especiales si el texto viene codificado en UTF-8 Tienes que reemplazar esa línea con una conversión correcta desde UTF-8 a WideString, usando UTF8Decode, que está disponible en Delphi 2005. Modifica esto:
por esto:
Si sabés que no está usando UTF-8, sino una codificación ANSI típica (como Latin1 / Windows-1252), utiliza esto en su lugar:
Pero en general, UTF-8 es lo estándar moderno, así que UTF8Decode() es lo más seguro. |
Cita:
creo que uso Latin1 el problema es que parece que la función AnsiToWide no esta en delphi 2005, le he preguntado al chatgpt y me ha montado una función pero no ha funcionado aun así, después he probado lo del utf8Decode me ha preguntado: contains international characters. Do you wish to save this file in UTF8 encoding? If you choose 'NO', the international characters will be lost. le he dicho que 'yes' y el programa ha seguido funcionando, el decode ha funcionado a la hora de escribir en el log hasta que ha llegao a la linea que tiene un acento y la ha dejado en blanco: Cita:
|
| La franja horaria es GMT +2. Ahora son las 13:53:36. |
Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi