• Publicidad

Problemas con Text::Unidecode en codificación

¿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.

Problemas con Text::Unidecode en codificación

Notapor ocrum2004 » 2012-03-24 15:18 @679

Hola,

Estoy teniendo un problema que no encuentro la forma de solucionar por muchas pruebas y variaciones que hago.

El objetivo es leer una URL en japonés y luego convertirla a Unicode.

Parte del código que utilizo es:

use Text::Unidecode;
use utf8;
use LWP::Simple;
$data = get("http://www.baidu.jp"); // La página se encuentra en UTF-8
$data = unidecode($data);

El resultado no es el correcto, pero si copio el código de ese dominio directamente en una cadena sí que funciona. ¿Problemas de codificación al usar get()?

Por ejemplo, esto sí que funciona:

$data="<html> ...</html>"; y luego si hago el unidecode() sí que funciona.

Gracias,
ocrum2004
Perlero nuevo
Perlero nuevo
 
Mensajes: 2
Registrado: 2012-03-24 14:35 @649

Publicidad

Re: Problemas con Text::Unidecode en codificación

Notapor explorer » 2012-03-24 15:33 @689

Bienvenido a los foros de Perl en Español, ocrum2004.

Unas consideraciones iniciales...

Una URL no puede estar escrita en japonés salvo que sea un IDN. Y en ese caso, tendrá su correspondiente traducción a latin1 normal.

¿No querrás decir que quieres leer un texto que está en esa página, en japonés?

El módulo Text::Unidecode está sin actualizar desde el 2001. Quizás fuera mejor que usaras el módulo Encode o las funciones internas utf8::encode() (las tendrás disponibles según la versión de Perl que estés usando).

He probado a bajarme la página, y en efecto, está en utf8. Solo quedaría decodificarla:

Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
  1. use Encode;
  2. use LWP::Simple;
  3. $data = get("http://www.baidu.jp"); # La página se encuentra en UTF-8
  4.  
  5. $data = decode_utf8($data);
  6.  
  7. print $data;
Coloreado en 0.003 segundos, usando GeSHi 1.0.8.4


Cuando pones la cadena en el propio programa, Perl ya sabe que está en utf8 (por el efecto del 'use utf8;') pero cuando lo lee con el get(), no lo sabe. Por eso hay que decodificarlo.
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: Problemas con Text::Unidecode en codificación

Notapor ocrum2004 » 2012-03-24 15:42 @696

Muchas gracias por la pronta respuesta, estoy toda la tarde con este problema y lo he solucionado con tus indicaciones. El texto en japonés era el interno, no la URL, como has deducido.

Faltaba el decode_utf8() como me has indicado.

Acabo de descubrir este foro y espero poder ayudar en lo que pueda.

Gracias de nuevo.
ocrum2004
Perlero nuevo
Perlero nuevo
 
Mensajes: 2
Registrado: 2012-03-24 14:35 @649


Volver a Intermedio

¿Quién está conectado?

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

cron