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); ConsolaSalida := ConsolaSalida + OutputLine;
LOG(OutputLine);
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.