[Lazarus-es] codificación de archivo: utf8 bom

Paola Bruccoleri pbruccoleri en adinet.com.uy
Dom Abr 24 21:33:23 CEST 2011


El 24/04/2011 12:55 p.m., José Mejuto escribió:
> Hello Paola,
>
> Wednesday, April 20, 2011, 7:24:19 PM, you wrote:
>
> PB>  en un proyecto tenía esto:
> PB>  pnlTopVersion.Caption:= SysToUTF8('Versión: ') + GetAppVersion;
> PB>  y la palabra Versión aparecía correctamente.
> PB>  En un proyecto nuevo quise hacer lo mismo, y la ó salía con caracteres
> PB>  extraños.
> PB>  Bien.. problema de codificación de caracteres... me fijé en el proy.
> PB>  anterior y el .pas tenía la codificación utf8 BOM, y el que salía mal,
> PB>  solo UTF8. Pues la cambié y listo..
> PB>  Ahora mi duda: ¿qué es utf8 BOM?
>
> Son 3 bytes que van al principio del fichero que indica que la
> codificación es UTF8. Estos 3 bytes no producen ningún caracter de
> salida, simplemente son una marca. Si codificas en UTF8 sin BOM el
> sistema no sabe seguro si es un ANSI o un UTF8 y normalmente hace una
> prueba, intenta procesar todo el archivo como UTF8, si encuentra una
> secuencia UTF8 no válida, asume que es ANSI. El problema, que hay
> secuencias ANSI que coinciden con UTF8 válidas y al revés, así que el
>
> sistema sólo es estadísticamente correcto, o sea, si la muestra es
> suficientemente grande es probable que acierte, pero si es pequeña
> 50%-50%.
>
Hola José..
muchas gracias por la explicación!
supongo entonces que lo mejor será que todos nuestros .pas tengan la 
codificación utf8-bom...
chauuuuuuuu





More information about the Lazarus-es mailing list