convertir caracteres

Victor Ramon Aguilar Ocampo aguilar@servidor.unam.mx
Wed, 27 May 1998 16:44:14 -0600 (CST)


Pues faltarian algunos detalles para tratar de ayudarte, pero suponiendo
que se trate de UNIX, tenemos las siguientes observaciones

Las vocales acentuadas en minusculas son los caracteres 
141 151 155 163 172    
Las vocales acentuadas mayusculas son
101 111 115 123 132

La en~e minuscula :   161
La      mayuscula :   121

Por eso los deja intactos, ademas de que las vocales acentuadas son
diferentes a las vocales comunes y corrientes.

Luego entonces algo como lo que sigue podria servir:

### Inicia ejemplo de codigo

$cadena=$linea;
 
# quitar acentos minusculas
        ($cadena2=$cadena)=~ s/\341/a/g;
        ($cadena=$cadena2)=~ s/\351/e/g;
        ($cadena2=$cadena)=~ s/\355/i/g;
        ($cadena=$cadena2)=~ s/\363/o/g;
        ($cadena2=$cadena)=~ s/\372/u/g;
#Cambiar de enie minuscula a mayuscula
        ($cadena=$cadena2)=~ s/\361/\321/g;
#Cambiar de enie minuscula a n.
#        ($cadena=$cadena2)=~ s/\361/n/g;
 
 
# quitar acentos de mayusculas
        ($cadena2=$cadena)=~ s/\301/A/g;
        ($cadena=$cadena2)=~ s/\311/E/g;
        ($cadena2=$cadena)=~ s/\315/I/g;
        ($cadena=$cadena2)=~ s/\323/O/g;
        ($cadena2=$cadena)=~ s/\332/U/g;
#Cambiar de enie minuscula a mayuscula
        ($cadena=$cadena2)=~ s/\321/\361/g;
#Cambiar de enie minuscula a n.
#        ($cadena=$cadena2)=~ s/\321/N/g;
 
# la cadena sin acentos.
 
        print D "$cadena\n";


### Termina ejemplo de codigo


Saludos.
					VICTOR.

----------------------------------------------------------------
	Direccion General de Servicios de Computo Academico
                  Academic Computing Services      
	    UNIVERSIDAD NACIONAL AUTONOMA DE MEXICO

   Victor Ramon Aguilar Ocampo   <aguilar@servidor.unam.mx>

   " Solo tienes dos cosas en tu hacer, las Razones y 
     los Resultados. Las Razones no cuentan  ".

----------------------------------------------------------------