Autor Tema: Tildes: La codificación definitiva para BennuGD/PixTudio-> Windows-1252 y CP 850  (Leído 98 veces)

panreyes

  • Administrator
  • *****
  • Mensajes: 2064
  • Karma: 65
    • panreyes.com
No sé cuánto tiempo llevo peleándome con las codificaciones, pero hasta día de hoy no me había puesto a intentar resolverlo.

La solución es muy simple:
- Para el código fuente utilizad la codificación Windows-1252
- Para archivos con fopen y demás: CP 850

Aquí os dejo un código para que lo comprobéis por vosotros mismos. Recordad guardar el PRG en formato ANSI o CP850.
Código: [Seleccionar]
import "mod_file";
import "mod_key";
import "mod_text";
import "mod_say";

Private
int fp;
string tildes="áéíóúñ¡";
Begin
write(0,0,0,0,"PRG: "+tildes);
say("PRG: "+tildes);

fp=fopen("lee_tildes.txt",o_write);
fputs(fp,tildes);
fclose(fp);

fp=fopen("lee_tildes.txt",o_read);
tildes=fgets(fp);
fclose(fp);
write(0,0,20,0,"FGETS: "+tildes);
say("FGETS: "+tildes);

while(!key(_esc)) frame; end
End

Pd: Los ASCII en decimal de los diferentes caracteres son los siguientes:
Citar
á = 160
é = 130
í = 161
ó = 162
ú = 163
¡ = 173
¿ = 168
Á = 181
É = 144
Í = 214
Ó = 224
Ú = 233

El único problema que queda pendiente son las funciones de ucase y lcase: No funcionan correctamente con los caracteres especiales. Yo he hecho mi versión para ucase:
Código: [Seleccionar]
Function string my_ucase(string texto);
Private
string texto2;
Begin
from x=0 to len(texto);
y=asc(texto[x]);
if(y>96 and y<123) //letras estándar
y-=32;
end
if(y==160) y=181; end //á
if(y==130) y=144; end //é
if(y==161) y=214; end //í
if(y==162) y=224; end //ó
if(y==163) y=233; end //ú
texto2+=chr(y);
end
return texto2;
End
« última modificación: Noviembre 19, 2017, 11:25:00 pm por panreyes »

JaViS

  • Global Moderator
  • *****
  • Mensajes: 1147
  • Karma: 19
    • Anarkade
Re:La codificación definitiva para BennuGD y PixTudio: CP 850
« Respuesta #1 en: Noviembre 16, 2017, 04:49:54 pm »
Buen dato! Estaría bueno actualizar la wiki con eso
Working on Anarkade. A couch multiplayer 2D shooter.

SplinterGU

  • Hero Member
  • *****
  • Mensajes: 12548
  • Karma: 370
Re:La codificación definitiva para BennuGD y PixTudio: CP 850
« Respuesta #2 en: Noviembre 16, 2017, 05:20:13 pm »
je! gracias!
Download Lastest BennuGD Release: http://www.bennugd.org/node/2

Ryo Suzuki

  • Full Member
  • ***
  • Mensajes: 141
  • Karma: 3
    • SEGASaturno
Re:Tildes: La codificación definitiva para BennuGD/PixTudio-> Windows-1252 y CP 850
« Respuesta #3 en: Noviembre 29, 2017, 11:27:23 am »
Genial.

Sí, la wiki pide que esté eso ya!