Perl en Español

  1. Home
  2. Tutoriales
  3. Foro
  4. Artículos
  5. Donativos
  6. Publicidad
 
Índice general » Mundo Perl » Módulos » Acentos y otros caracteres  RESUELTO Responder al tema
Nuevo tema


Página 1 de 1  [ 4 mensajes ] 
 
Nota 2011-04-22 03:20 @181

Perlero Nuevo
Registrado: 2010-02-03 04:59 @249
Mensajes: 12
Acentos y otros caracteres  RESUELTO
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 ?


Nota 2011-04-22 05:52 @286
Avatar de Usuario
Administrador
Registrado: 2005-07-24 18:12 @800
Ubicación: Valladolid, España
Mensajes: 10216
Re: Acentos y otros caracteres
Hay varios módulos al respecto. Por ejemplo, Text::Transliterator::Unaccent:
Syntax: [ Download ] [ Hide ]
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.]
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


Nota 2011-04-22 06:14 @301

Perlero Nuevo
Registrado: 2010-02-03 04:59 @249
Mensajes: 12
Re: Acentos y otros caracteres
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...


Nota 2011-04-22 09:26 @435
Avatar de Usuario
Administrador
Registrado: 2005-07-24 18:12 @800
Ubicación: Valladolid, España
Mensajes: 10216
Re: Acentos y otros caracteres
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


Responder al tema  [ 4 mensajes ] 

Reglas del Foro
No puedes abrir nuevos temas en este Foro
No puedes responder a temas en este Foro
No puedes editar tus mensajes en este Foro
No puedes borrar tus mensajes en este Foro
No puedes enviar adjuntos en este Foro

Publicidad

Socializa

Síguenos por Twitter

Suscríbete GRATUITAMENTE al Boletín de Perl en Español

Saltar a:  
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Traducción al español por Huan Manwë para phpbb-es.com
phpBB SEO