Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

csv, Perl und Umlaute

9 views
Skip to first unread message

abadiya

unread,
Sep 14, 2007, 2:01:24 PM9/14/07
to
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></%method>
... werden die Umlaute nicht korrekt angezeigt.

Weiß jemand Rat?

Vielen Dank und viele Grüße

Moritz Lenz

unread,
Sep 15, 2007, 4:19:21 AM9/15/07
to
Hallo,

abadiya wrote:
> 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.

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.

<eigenwerbung>
Ich hab vor kurzem was zu Perl + Charsets geschrieben, vielleicht hilft
dir das ja: http://moritz.faui2k3.org/blog/charsets-und-kodierungen-in-perl
</eigenwerbung>

Grüße,
Moritz


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

Johannes Plunien

unread,
Sep 15, 2007, 5:35:48 AM9/15/07
to
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

abadiya

unread,
Sep 15, 2007, 6:08:32 AM9/15/07
to
> 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></%method>
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=0

% while ( $zeile = <TABELLE> ){
%if ($count !=0);
%{
% my @spalten = split(/;/, $zeile);

<b><% $spalten[0] %></b>
<br><br>

<% $spalten[1] %>
<br><br>

<a href=" <% $spalten[2] %> ">Link1</a>

&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;

<a href=" <% $spalten[3] %> ">Link2</a>
<br><br>
<br>
%}

%$count++;

% }

% close TABELLE;

abadiya

unread,
Sep 17, 2007, 5:52:12 AM9/17/07
to
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);


0 new messages