Libertonia
Portada · Todo · Software Libre · Desarrolladores · Comunidad · Internet · Tecnología · Meta · Diarios
Ver: Modo: Orden:
Biff vía jabber | 2 comentarios (2 temáticos, editoriales, 0 ocultos)
Charset (none / 0) (#1)
por atordo a las Mon Oct 11th, 2004 at 10:47:04 PM CET
(Información Usuario)

Al tiempo de usar esta receta me percaté de que Jabber (o por lo menos el servidor al que me conecto) pasa olímpicamente de los mensajes que contengan caracteres iso-8859-1. Así que la he cambiado:

:0
{
   :0 c:$HOME/tmp/.lockmail
   $DEFAULT

   :0 h
   | $MAILDIR/cabeceras.pl | recode -qf latin9..utf-8 \
   | $HOME/bin/sJab -u remitente -p contraseña -t destinatario -q 'Nuevo correo'
}


El script cabeceras.pl es el siguiente:

#!/usr/bin/perl
#
# Parsear cabeceras de email
#

use strict;
#use Mail::Internet;
use MIME::QuotedPrint;
use MIME::Base64;
use HTTP::Date;
use POSIX qw(strftime);
use POSIX qw(locale_h);

setlocale(LC_TIME, "es_ES\@euro");

my $ext;
#my $header = Mail::Internet->new(*STDIN)->head()->header_hashref();

while (<STDIN>) {
   $ext.="De:    ".dc($1) if (m/^From: (.*)/);
#   $ext.="Para: ".dc($1) if (m/^To: (.+)/);
   $ext.="Tema:  ".dc($1) if (m/^Subject: (.+)/);
   $ext.="Fecha: ".strftime ("%A %e de %B de %Y (%H:%M:%S %Z)", localtime(str2time($1)))."\n"
      if (m/^Date: (.+)/);
}

print $ext;

sub dc {
   my $c=shift;
   my $d;

   if ($c=~ m/=\?(iso|us)-\S+\?q\?(\S+)\?=/i) {
      $c=~ s/=\?(iso|us)-\S+\?q\?(\S+)\?=/$2/ig;
      $d=decode_qp($c);
      $d=~ s/_/ /g;
      #print "ES: ".substr($c, -1, 1)."\n\n" if (substr($c, -1, 1) ne "\n");
   }
   elsif ($c=~ m/=\?(iso|us)-\S+\?b\?(\S+)\?=/i) {
      $d=decode_base64($2);
      $c=~ s/=\?(iso|us)-\S+\?b\?(\S+)\?=/$d/ig;
      #$c=decode_base64($c);
      $d=$c;
   }
   else { $d=$c; }
   $d.="\n" if (substr($d, -1, 1) ne "\n");
   return $d;
}


La función dc intenta averiguar la codificación usada y actuar en consecuencia, de momento con bastante éxito. Aunque muy posiblemente haya que retocarla, ya que parece haber tantas formas de codificar el texto como lectores de correo (aunque se supone que son estándar).

Respecto al tema de la entrada, he encontrado un interesante artículo que trata la cuestión.



Biff vía jabber | 2 comentarios (2 temáticos, editoriales, 0 ocultos)
Ver: Modo: Orden:
Menu
· crear cuenta
· FAQ
· búsqueda
· Fuentes de Noticias

Login
Nueva cuenta
Usuario:
Contraseña:

ecol Logo Powered by Scoop
Todas las Marcas Registradas y copyrights de esta página son propiedad de sus respectivos dueños.
Los comentarios son propiedad del que los escribe.
Los iconos de las noticias y el logotipo son propiedad de Javier Malonda.
El Resto © 2002 Escomposlinux.org y aledaños.

Puedes sindicar los contenidos de libertonia en formato RSS 1.0 y RDF 0.9. También se puede sindicar la cola de envíos pendientes de moderación.

El proyecto escomposlinux.org está dedicado a la memoria de tas

crear cuenta | faq | búsqueda