Fred Jounters: perl, unicode und latex: email zu fax gateway

Hallo!

Ich versuche jetzt schon seit geraumer Zeit perl mit utf-8 und latex (bzw. pdflatex) zwecks Erstellung eines Fax-Gateways zum Laufen zu bekommen. Beides gelingt mir schlichtweg nicht.

ps: Ich nehme an, der Fehler liegt bei latex, da ich mich hier am wenigsten auskenne.

pps: Wg. utf-8 und perl: Perl hält doch intern alle strings als utf-8 im Speicher (ab 5.8 glaub ich), es sei denn, das Encoding ist vorher ein anderes, oder?

Habt schon mal Dank für die Hilfe! Ich komm hier niet mehr weiter!

Der PERL-Teil:

Grundsätliches:

use strict;
use utf8;
...

Allgemein:

* Lese E-mails aus einem Verzeichnis ein, parse mit Email::Simple und erhalte Content-Type charset der Textinhalte. Attachements werden "weggeworfen" da ich nur text im PDF ausgeben will.

* Wenn charset != utf-8, dann encode('utf-8', $string)
  (Das mache ich für alles ausser dem Body, welcher später unbehandelt (bis auf escaping) zwischen \begin{verbatim} ... \end{verbatim} stehen soll

* Schliesslich werden alle (ausser Body) Variablen mit encode('latex', $VAR) noch a la latex escaped. (mit TeX::Encode)

* Variablen welche in Perl stehen (Begrüßung/addresse...) sind mit einem utf-8 fähigen Terminal erstellt, direkt als solche im Quelltext definiert (einfache Anführgszeichen), Bsp (innerhalb eines hashes):
my %conf = (
closing => 'In der Hoffnung, daß Sie mit unserem Dienst zufrieden sind,\Mit freundlichen Grüßen',
...
);

LATEX:

"Header":
\documentclass[fontsize=12pt]{scrlttr2}
\usepackage{ngerman}
\usepackage{newcent}
\usepackage[ngerman]{varioref}
\usepackage[T1]{fontenc}
%\usepackage[ngerman,english,spanish,french,italian,spanish]{babel}
\usepackage{ucs}
\usepackage[utf8x]{inputenc}
%\usepackage[latin1]{inputenc}
\usepackage{verbatim}

Später:

\begin{letter}{__TOADDRESS__}

\opening{__OPENING__}

__INTRO__

\begin{center}\begin{tabular}{|c|c|c|c||c|}
\hline

.....

__UNTERSTRICHE__ wird entsprechend ersetzt.

So, das funktioniert einigermaßen. Das fertige .tex Dokument sieht so schleht nicht aus, zB

...
\begin{letter}{Herr W. Test\
Teststraße 1\
D-1234 Wahlstadt}

\opening{Sehr geehrter Herr W. Test}

Anbei eine Liste aller Gestern eingegangener E-Mail-Nachrichten. Bitte beachten Sie, daß weder........

Leider sagt mir pdflatex schon direkt bei \opening{...} folgendes:

! Package utf8x Error: Malformed UTF-8 sequence.

See the utf8x package documentation for explanation.
Type  H <return>  for immediate help.
 ...

l.54 \opening{Sehr geehrter Herr W. Test}

?

Hat da jemand eine Idee?

  1. ! Package utf8x Error: Malformed UTF-8 sequence.

    Hilft dir evtl. http://perldoc.perl.org/Encode.html#Handling-Malformed-Data weiter?

    Siechfred

    --
    Ich bin strenggenommen auch nur interessierter Laie. (molily)
    1. Hallo und Danke Siechfred,

      ! Package utf8x Error: Malformed UTF-8 sequence.

      Hilft dir evtl. http://perldoc.perl.org/Encode.html#Handling-Malformed-Data weiter?

      nein, leider nicht. Hatte schon Encode::FB_WARN angegeben, Perl scheint keine seltsamen unicode-chars zu finden. Ausserdem müsste ohne Argument ja CHECK == Encode::FB_DEFAULT ( == 0) woraus folgen sollte, daß unbekannte chars durch <subchar> ersetzt würden, wenn ich die Doku richtig interpretiere.

      Es liegt wohl doch eher an latex. Ich bin auch shon ein wenig weiter gekommen.

      Wenn ich die tex-Datei mit vim umcodiere in latin1 ("set encoding=latin1"), dann schluckt pdflatex die Datei kommentarlos!

      "set encoding=utf-8" hingegen ist absolutes no-go.

      Frage mich, was da los ist.

      Gruß
      FredJ

      1. Hilft dir evtl. http://perldoc.perl.org/Encode.html#Handling-Malformed-Data weiter?
        nein, leider nicht.

        Schade, ich hätte auf das CHECK-Flag getippt.

        Es liegt wohl doch eher an latex.

        Dabei kann ich dir leider nicht weiterhelfen, eventuell versuchst du es in einem Spezialforum, z.B. bei perlunity.de.

        Siechfred

        --
        Ich bin strenggenommen auch nur interessierter Laie. (molily)
        1. Dabei kann ich dir leider nicht weiterhelfen, eventuell versuchst du es in einem Spezialforum, z.B. bei perlunity.de.

          bin deinem tipp mal nachgegangen und gespannt was dabei herauskommt! danke dir für die hilfe!

          fred

          1. Problem ist gelöst.

            Es lag im großen und ganzen daran, daß manches utf-8 doppelt encoded wurde und anderes nicht korrekt umgewandelt wurde.

            Hilfreich war v.a. perluniintro für's Verständnis und http://ahinea.com/en/tech/perl-unicode-struggle.html in meinem speziellen Fall.

            Vielleicht hilft's ja jmd. anderem weiter!
            Nochmals Danke an S.

            ps: wens genau interessiert, noch mehr dazu unter http://www.perlunity.de/cgi-bin/forum/forum_thread.cgi?tid=19858&mid=40207&fid=8&pn=0

            Dabei kann ich dir leider nicht weiterhelfen, eventuell versuchst du es in einem Spezialforum, z.B. bei perlunity.de.

            bin deinem tipp mal nachgegangen und gespannt was dabei herauskommt! danke dir für die hilfe!

            fred