• Publicidad

Acentos y otros caracteres

Aquí encontrarás todo lo que sea específicamente acerca de módulos de Perl. Ya sea que estás compartiendo tu módulo, un manual o simplemente tienes una duda acerca de alguno.

Acentos y otros caracteres

Notapor Dgrande » 2011-04-22 03:20 @181

Hola amigos.

La verdad es que sigo mucho los diferentes foros pero apenas participo...

Bueno, tengo una duda: en muchas ocasiones me encontrado con la necesidad de substituir caracteres latinos, por ejemplo acentos con sus equivalentes sin acentos. Hasta ahí todo fácil, tengo diferentes funciones que hacen esto. Cuando voy procesando grandes cantidades de texto siempre me surgen la duda de haberme dejado alguno pues por último hago una s/\W// para eliminar todo lo no sustituido anteriormente.

A veces sustituto centenares de miles de líneas. He leído mucho en busca de listados de estos caracteres latinos en diferentes idiomas y y sus equivalentes en ASCII... pero siempre me queda la duda de si me dejo alguno.

http://es.wikipedia.org/wiki/Alfabeto_latino

El problema se complica pues yo programo muchas cosas en Perl pero también en PHP.

Por ejemplo :

Con Perl convierto :

"el gancho como en ả ẳ ẩ ẻ ể ỉ ỏ ổ ở ủ ử en vietnamita. "

a un fichero en el disco:

el-gancho-como-en-a-a-a-e-e-i-o-o-o-u-u-en-vietnamita.txt

Luego cargo una tabla en MySQL con esa frase he intento buscar el fichero si existe en el disco.

En ambos casos trabajo con expresiones regulares incluyendo los mismos caracteres y me funciona pero siempre me queda la duda de haberme dejado de substituir correctamente algún carácter.

¿Existe algún módulo de Perl que realice esa función o algún script? Yo lo programaría a su equivalente en PHP.

Yn saludo y gracias...

¿ Ideas ?
Dgrande
Perlero nuevo
Perlero nuevo
 
Mensajes: 14
Registrado: 2010-02-03 04:59 @249

Publicidad

Re: Acentos y otros caracteres

Notapor explorer » 2011-04-22 05:52 @286

Hay varios módulos al respecto. Por ejemplo, Text::Transliterator::Unaccent:
Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
  1. #!/usr/bin/perl
  2. use utf8;                                        # en este programa hay caracteres escritos en utf8 (línea 9)
  3. use open OUT => ':utf8';                         # la salida del programa será en utf8
  4. use open ':std';                                 # la salida STDOUT (el print()) también será en utf8
  5.  
  6. use Text::Transliterator::Unaccent;              # creamos una transliteración basada en el alfabeto Latin
  7. my $unaccenter = Text::Transliterator::Unaccent->new(script => 'Latin');
  8.  
  9. $x = "el gancho como en ả ẳ ẩ ẻ ể ỉ ỏ ổ ở ủ ử en vietnamita.";
  10.  
  11. print "[$x]\n";
  12.  
  13. $unaccenter->($x);                               # ¡Chas!
  14.  
  15. print "[$x]\n";
  16.  
  17. __END__
  18. [el gancho como en ả ẳ ẩ ẻ ể ỉ ỏ ổ ở ủ ử en vietnamita.]
  19. [el gancho como en a a a e e i o o o u u en vietnamita.]
Coloreado en 0.003 segundos, usando GeSHi 1.0.8.4
En la documentación de este módulo hay referencias a otros módulos parecidos.

P.D. Creo que no te va a resultar fácil hacer la versión para PHP :wink:
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

Re: Acentos y otros caracteres

Notapor Dgrande » 2011-04-22 06:14 @301

Eres un crack.

La verdad, explorer, te sigo desde hace años. Yo uso Perl en mi día a día desde que lo conocí en el 94, prácticamente ante cualquier problema suelo buscar una solución en Perl. Pero tu al parecer lo conoces a fondo. Yo, la verdad, el inglés no es mi fuerte y tengo dificultades en entender la información de los módulos. CPAN es increíble pero para mi es complejo la forma de encontrar la información. Yo ante un problema busco algún módulo que realice esa función pero en CPAN me vuelvo loco y al final... me pongo yo solo a programar mi particular solución ante un problema.

Estudiaré inglés... o ¿Cómo encontrar más fácilmente la info de CPAN ? Esa es la cuestión.

Gracias otra vez e intentaré ser más participativo...
Dgrande
Perlero nuevo
Perlero nuevo
 
Mensajes: 14
Registrado: 2010-02-03 04:59 @249

Re: Acentos y otros caracteres

Notapor explorer » 2011-04-22 09:26 @435

Entiendo lo del Inglés, a mí me pasa lo mismo: soy incapaz de hablarlo y apenas entiendo algunas palabras cuando las oigo. En cambio, lo entiendo más o menos bien escrito. Pero también me cuesta mucho escribirlo.

En caso de no entender alguna palabra, o cuando quiero escribir algo en inglés, uso Google Translate o la web WordReference.com.

Por ejemplo, cuando hablaste de "averiguar" qué codificación tiene un fichero, me sonaba que lo había visto en CPAN, pero no me acordaba de su nombre. En CPAN, busqué por "guest", pero no salía lo que quería. Me estaba equivocando de palabra. Entré en WordReference.com, y me dio la traducción de "adivinar": "guess". Lo puse en CPAN, y lo encontré.

En Mozilla Firefox (o Google Chrome), puedes instalar la barra de herramientas de Google (si estás en Windows), y activar el Google Translate en las páginas en inglés que visites. Y da muy buenos resultados.

En cuanto a la documentación de Perl... estamos en ello.
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 Módulos

¿Quién está conectado?

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

cron