csv, Perl und Umlaute

csv, Perl und Umlaute

am 14.09.2007 20:01:24 von Abadiya

Hallo,

ich möchte Daten aus einer Excel-Tabelle in eine HTML-Seite einfügen.
Sozusagen eine kleine Excel-Datenbank. Dazu habe ich die Excel-Datei
in eine csv-Datei umgewandelt und greife auf die Daten mit Mason/Perl
zu. Das klappt auch wunderbar.

Mein Problem ist nur dass die Umlaute und Anführungszeichen nicht
richtig dargestellt werden. Manchmal sind sie korrekt, manchmal
erscheinen an ihrer Stelle Fragezeichen (oder Rechtecke). Das ändert
sich bei fast jedem Refresh.

Selbst wenn ich UTF8 erzwinge...
<%method .utf8>
... werden die Umlaute nicht korrekt angezeigt.

Weiß jemand Rat?

Vielen Dank und viele Grüße

Re: csv, Perl und Umlaute

am 15.09.2007 10:19:21 von Moritz Lenz

Hallo,

abadiya wrote:
> ich möchte Daten aus einer Excel-Tabelle in eine HTML-Seite einfüge=
n.
> Sozusagen eine kleine Excel-Datenbank. Dazu habe ich die Excel-Datei
> in eine csv-Datei umgewandelt und greife auf die Daten mit Mason/Perl
> zu. Das klappt auch wunderbar.

In welchem Charset liegt die CSV-Datei vor? Und in welchem ist das
Perlscript kodiert? Was ist der Charset der ausgegeben HTML-Datei?

> Mein Problem ist nur dass die Umlaute und Anführungszeichen nicht
> richtig dargestellt werden. Manchmal sind sie korrekt, manchmal
> erscheinen an ihrer Stelle Fragezeichen (oder Rechtecke). Das ändert
> sich bei fast jedem Refresh.


Ich hab vor kurzem was zu Perl + Charsets geschrieben, vielleicht hilft
dir das ja: http://moritz.faui2k3.org/blog/charsets-und-kodierungen-in-p e=
rl


Grüße,
Moritz


--=20
Moritz Lenz
http://perl-6.de/ http://moritz.faui2k3.org/

Re: csv, Perl und Umlaute

am 15.09.2007 11:35:48 von Johannes Plunien

Hi,

abadiya wrote:
> Mein Problem ist nur dass die Umlaute und Anführungszeichen nicht
> richtig dargestellt werden. Manchmal sind sie korrekt, manchmal
> erscheinen an ihrer Stelle Fragezeichen (oder Rechtecke). Das ändert
> sich bei fast jedem Refresh.

welches CSV Modul verwendest du denn?

Gruesse,
Johannes

Re: csv, Perl und Umlaute

am 15.09.2007 12:08:32 von Abadiya

> In welchem Charset liegt die CSV-Datei vor? Und in welchem ist das
> Perlscript kodiert? Was ist der Charset der ausgegeben HTML-Datei?

Ich weiß nicht was Excels Default-Einstellung bei der Umwandlung xls--
>csv ist. Damit klappte es aber schon mal nicht. Ich hab sie dann mit
einem Editor direkt in UTF8 umgewandelt. Funktionierte auch nicht.

Das Perl-Skript ist durch folgende Zeile UTF8.
<%method .utf8>
Wenn ich die Zeile rauslasse werden die Darstellungsfehler nur
schlimmer (Anhäufungen beliebiger Sonderzeichen).

Und das mit der HTML-Seite weiß ich nicht. Hängt dass nicht vom
Browser ab? Hier zu Hause wird die Seite durch Firefox übrigens
makellos angezeigt. IE hängt auch hier.




> welches CSV Modul verwendest du denn?

Das hier ist der Code der sich auf das Einlesen der Datei bezieht

% my $zeile;
% open TABELLE, "../test_excel.csv";

%$count=3D0

% while ( $zeile =3D ){
%if ($count !=3D0);
%{
% my @spalten =3D split(/;/, $zeile);

<% $spalten[0] %>




<% $spalten[1] %>






        







%}

%$count++;

% }

% close TABELLE;

Re: csv, Perl und Umlaute

am 17.09.2007 11:52:12 von Abadiya

Vielen Dank an Moritz (hat mir per Email geholfen). Am besten
funktioniert es in meinem Fall mit der Umwandlung der Umlaute in
Entities:

Dies an den Anfang:
% use HTML::Entities;

Und das in den Mittelteil des Codes:
% encode_entities( $variable);