[Lazarus-es] La letra Ñ

José Mejuto joshyfun en gmail.com
Mie Ago 4 00:18:59 CEST 2010


Hello franmate,

Tuesday, August 3, 2010, 11:53:27 PM, you wrote:

>> a_mayu[20] := UTF8ToAnsi('N')[1];
fgc> con eso accedes al primer byte del caracter utf8 Ñ , que es 195
fgc> (decimal) , [2] es 145 ( el que ves como un "cuadradito" )

No, lo que tu dices sería: "'Ñ'[1]" UTF8ToAnsi pasa "multibyte" UTF8 a
"singlebyte" ANSI, pero devuelve en formato de string, por lo tanto
tienes que acceder al primer caracter que será la "Ñ" en ANSI.

Comprobación fácil:

var
  a,b,c: string;
begin
  a:='Ñ';
  writeln(Length(a));
  b:=UTF8ToAnsi(a);
  writeln(Length(b));
  c:=UTF8ToAnsi(a)[1];
  writeln(Length(c));
  writeln('');
  Writeln('Salida sin conversión: ',a);
  Writeln('Salida UTF8ToAnsi: ',UTF8ToAnsi(a));
  writeln('Salida AnsiToUTF8: ',AnsiToUTF8(a));
end;

-- 
Best regards,
 José





More information about the Lazarus-es mailing list