• Publicidad

Función uc y el uso de letras acentuadas y letra ñ

¿Ya sabes lo que es una referencia? Has progresado, el nível básico es cosa del pasado y ahora estás listo para el siguiente nivel.

Función uc y el uso de letras acentuadas y letra ñ

Notapor pbellon » 2007-05-21 09:50 @451

Necesito convertir a mayúsculas nombres de ficheros y uso la función uc pero cuando el nombre de fichero lleva la letra ñ o una vocal acentuada ésta no la convierte.
Ejemplo 1:
Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
$s = "exp00ñ11";
$t = uc($s);
Coloreado en 0.003 segundos, usando GeSHi 1.0.8.4

esto imprime EXP00ñ11


Ejemplo 2:
Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
$s = "exp00á11";
$t = uc($s);
Coloreado en 0.001 segundos, usando GeSHi 1.0.8.4

esto imprime EXP00á11

¿A que se debe? y sobre todo, ¿cómo puedo solucionarlo?
8)
pbellon
Perlero nuevo
Perlero nuevo
 
Mensajes: 36
Registrado: 2004-10-22 06:48 @325

Publicidad

Notapor explorer » 2007-05-21 10:42 @488

Pues pasa porque Perl, por defecto, ignora las características locales de idioma de tu sistema. Para hacer que haga uso de ellas, debes usar el pragma use locale;.

Atención, que para que esto funcione se tienen que dar unas cuantas condiciones.

Más información en perllocale.

Si las cosas se tuercen, quizás sea más fácil hacer un tr/// del nombre del fichero.
JF^D Perl programming & Raku programming. Grupo en Telegram: https://t.me/Perl_ES
Avatar de Usuario
explorer
Administrador
Administrador
 
Mensajes: 14486
Registrado: 2005-07-24 18:12 @800
Ubicación: Valladolid, España

Notapor pbellon » 2007-05-23 09:48 @450

Con tr/// lo he solucionado. Gracias
8)

Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
#################################################
# Convierta a mayúsculas
# Tiene en cuenta vocales acentuadas y la letra ñ
# Ej. $cad2 = uc2($cad);
#################################################
sub uc2{
   my($a) = @_;
   $a =~ tr/áéíóúñ/ÁÉÍÓÚÑ/;
   my $ret = uc($a);
   return $ret;
}# fin sub uc2


#################################################
# Convierta a minúsculas
# Tiene en cuenta vocales acentuadas y la letra ñ
# Ej. $cad2 = lc2($cad);
#################################################
sub lc2{
   my($a) = @_;
   $a =~ tr/ÁÉÍÓÚÑ/áéíóúñ/;
   my $ret = lc($a);
   return $ret;
}# fin sub lc2
Coloreado en 0.001 segundos, usando GeSHi 1.0.8.4
pbellon
Perlero nuevo
Perlero nuevo
 
Mensajes: 36
Registrado: 2004-10-22 06:48 @325

Notapor explorer » 2007-05-23 10:51 @493

¿Y la u con diéresis: ü?
¿Y la c con cedilla: ç?

:-D
JF^D Perl programming & Raku programming. Grupo en Telegram: https://t.me/Perl_ES
Avatar de Usuario
explorer
Administrador
Administrador
 
Mensajes: 14486
Registrado: 2005-07-24 18:12 @800
Ubicación: Valladolid, España


Volver a Intermedio

¿Quién está conectado?

Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 0 invitados