[Lazarus-es] Codificación de caracteres

Antonio Évora aevorar en gmail.com
Jue Nov 11 15:26:29 CET 2010


Hola compañeros,
Estoy sufriendo una paranoia con el tema de los acentos. Según he leído 
desde la versión 0.9.25 de lazarus todo está codificado con UTF8 (tengo 
la 0.9.28) sobre SO Windows XP.

Bueno tengo el siguiente procedimiento:

procedure Aviso(Texto: string);
begin
     Application.MessageBox(pchar(Texto),'Aviso',64);
end;

Y lo llamo con:

Aviso('Los parámetros han sido actualizados con éxito');

Al mostrar el mensaje los caracteres acentuados son sustituidos por ?.

Pensando que pudiera ser por el tipo del parámetro lo cambie por 
UTF8String con el mismo resultado. Examinando el valor del parámetro una 
vez pasado siempre va codificado en Ansi independientemente del tipo.

Cambiando la instrucción del procedimiento por:

Application.MessageBox(pchar(AnsiToUtf8(Texto)),'Aviso',64);

Funciona OK.

¿Como puedo trabajar para evitar el tener que andar convirtiendo entre 
tipos de datos?








More information about the Lazarus-es mailing list