[Lazarus-es] Codificación de caracteres

Antonio Évora aevorar en gmail.com
Vie Nov 12 11:47:29 CET 2010


El 12/11/10 11:40, José Mejuto escribió:
> Hello Antonio,
>
> Friday, November 12, 2010, 8:28:03 AM, you wrote:
>
>    
>>> La salida de Lazarus es UTF8, así que tienes que adaptar los datos
>>> llegados a ese formato.
>>>        
> AÉ>  Hola José y Paola,
> AÉ>  Creo que la respuesta correcta seria:
> AÉ>  Si al parámetro del procedimiento le paso un literal (no es el contenido
> AÉ>  de ninguna variable ni datos de ninguna BBDD), ¿como tendría que pasarlo
> AÉ>  para que estuviera en UTF8 y así evitar la conversión?
>
> Eso ya depende de tu base de datos y cómo hayas definido el campo en
> cuestión y cómo tengas el "charset" de la conexión a la base de datos.
>
> Para evitar conversiones, la base de datos debería de tener el campo
> definido como UTF8 y el charset de la conexión a UTF8 también o NONE.
>
> Con Firebird y UTF8 en los campos hay un "problema" que no está bien
> resuelto en Lazarus creo que por compatibilidad con Interbase, así que
> en esta base de datos lo mejor para usar campos UTF8 es usar charset a
> NONE.
>
> Cuál es tu base de datos ?
>
> Ah! los literales pueden estar casi seguro en UTF8, pero si el .pas es
> "antiguo" puede no serlo, para saberlo pulsa sobre el editor de código
> con el botón derecho y selecciona (te lo pongo en inglés que es como
> lo tengo yo) "File settings ->  Encoding" y ahí verás como están
> codificados los literales en ese .pas
>
>    
Muchas gracias José, diste en el clavo.

Lo que ocurria era la unit donde se guardaba el procedimiento estaba 
codificado en UTF8 mientras que la unit desde la que llamaba estaba 
codificada en cp1252 (son unidades y formularios migrados desde Delphi).

Un cordial saludo y gracias reiteradas.




More information about the Lazarus-es mailing list