[Lazarus-es] La letra Ñ

Anxo Vázquez xanxov en esdebian.org
Jue Ago 5 21:31:02 CEST 2010


Creo que el problema está en la configuración de las locales de mi sistema
Debian. El siguiente texto:

 a:=UTF8ToISO_8859_1('Ñ')[1];
 Edit1.Text:=IntToStr(Length(a)); //debería ser 1
 b:=ISO_8859_1toUTF8(a);
 Edit2.Text:=IntToStr(Length(b)); //debería ser 2
 Edit3.Text:=ISO_8859_1toUTF8(a); //Debería poner una Ñ

escrito por ti y editado con Kwrite lo confirma.
He probado:

tmp:String;

  tmp := UTF8ToISO_8859_1('Ñ')[1];
 a_mayu[20] := tmp[1];
 Label1.Caption:=UTF8ToAnsi('Ñ')[1];
 Label5.Caption:=tmp;
 Label38.Caption:=AnsiToUTF8('Ñ')[1];
 Label39.Caption:=ISO_8859_1ToUTF8('Ñ')[1];

Siempre el mismo resultado: ¡¡ Mi rectangulo favorito !!.
Hice un dpkg-reconfigure locales y probé varias combinaciones, finalmente
dejé:
*es_ES ISO-8859-1* y *es_ES.UTF8 UTF8*
Lo máximo que conseguí fué sustituir mi cuadradito por una interrogación.

Efectivamente la aplicación es para el GUI.
No entiendo muy bien por que dices que no debería usar codepages, yo no
conozco otra manera más sencilla de generar el alfabeto castellano que con:

  *for car := 'A' to 'Z' do*

Si la hay me gustaría conocerla.

Un saludo y muchas gracias.

El 4 de agosto de 2010 11:39, José Mejuto <joshyfun en gmail.com> escribió:

> Hello franmate,
>
> Wednesday, August 4, 2010, 1:30:13 AM, you wrote:
>
> fgc> Ok, correcto , pero con UTF8ToAnsi('Ñ')[1] no obtienes el caracter Ñ
> fgc> en una aplicacion GUI , lo acabo de comprobar en UBUNTU
> fgc> edit1.text:=UTF8ToAnsi('Ñ')[1];
> fgc> y length(UTF8ToAnsi('Ñ')) es 2
>
> Vale, es cierto, ya que estás en Ubuntu casi seguro, lo anterior
> funciona en Windows en que la consola es "codepage", mientras que tu
> Ubuntu debe de ser ES_es.UTF8, o sea que tu ANSI es UTF8, por lo tanto
> AnsiToUTF8 y su inversa no hacen nada de nada, ya que convierten de
> UTF8 a UTF8.
>
> En tu caso tendrás que usar UTF8ToISO_8859_1 ya que quieres seguir
> usando "codepages", cosa que no deberías hacer, pero bueno.
>
> Una aplicación GUI en Ubuntu supongo que GTK2 siempre quiere las
> strings en UTF8, por lo tanto:
>
> var
>  a,b,c: string;
> begin
>   a:=UTF8ToISO_8859_1('Ñ')[1];
>  Edit1.Text:=IntToStr(Length(a)); //debería ser 1
>  b:=ISO_8859_1toUTF8(a);
>  Edit2.Text:=IntToStr(Length(b)); //debería ser 2
>  Edit3.Text:=ISO_8859_1toUTF8(a); //Debería poner una Ñ
>  //Lo correcto sería usar esta última forma, ya que no puedes
>  //asegurar que el dispositivo de salida sea UTF8, siempre que
>  //escribas en una consola.
>  Edit4.Text:=UTF8ToAnsi(ISO_8859_1toUTF8(a)); //Debería poner una Ñ
> end;
>
> --
> Best regards,
>  José
>
>
> _______________________________________________
> Lazarus-es mailing list
> Lazarus-es en lists.lazarus.freepascal.org
> http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus-es
>
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://lists.lazarus-ide.org/pipermail/lazarus-es/attachments/20100805/4435c1ca/attachment-0002.html>


More information about the Lazarus-es mailing list