Ver Mensaje Individual
  #5  
Antiguo 17-05-2025
navbuoy navbuoy is offline
Miembro
 
Registrado: mar 2024
Posts: 360
Reputación: 3
navbuoy Va por buen camino
El problema esta en esta linea:

Código Delphi [-]
OutputLine := WideString(Buffer);

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:

Código Delphi [-]
OutputLine := WideString(Buffer);
ConsolaSalida := ConsolaSalida + OutputLine;
LOG(CONSOLAsALIDA);

por esto:

Código Delphi [-]
var
  TempStr: UTF8String;
begin
  SetString(TempStr, Buffer, BytesRead);
  OutputLine := UTF8Decode(TempStr); // Convierte UTF8 → WideString
  ConsolaSalida := ConsolaSalida + OutputLine;
  LOG(OutputLine); // También puedes loguear solo lo nuevo

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:

Código Delphi [-]
OutputLine := AnsiToWide(Buffer);

Pero en general, UTF-8 es lo estándar moderno, así que UTF8Decode() es lo más seguro.
Responder Con Cita