User since
2007-09-14
7
Artikel
BenutzerIn
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
User since
2003-11-28
3645
Artikel
ModeratorIn
Wie liest du die CSV-Datei ein? Mit Text::CSV_XS?
User since
2007-09-14
7
Artikel
BenutzerIn
Das ist der Code der die CSV einliest. Und da es Mason ist, ist das auch schon fast der gesamte Code der Seite.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
% 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>
<a href=" <% $spalten[3] %> ">Link2</a>
<br><br>
<br>
%}
%$count++;
% }
% close TABELLE;
User since
2003-11-28
3645
Artikel
ModeratorIn
Du solltest spezifieren, in welchem Encoding die Datei vorliegt: binmode TABELLE, ":encoding(...)" oder binmode TABELLE, ":utf8".
User since
2007-09-14
7
Artikel
BenutzerIn
Ah ok. Kommt das direkt nach dem Öffnen der Tabelle? Also:
% open TABELLE, "../test_excel.csv";
% binmode TABELLE, ":utf8";
% $count=0
User since
2003-11-28
3645
Artikel
ModeratorIn
Ja. Oder gleichs ins open:
open TABELLE, "<:utf8", "datei"
User since
2007-09-14
7
Artikel
BenutzerIn
Vielen Dank, werd ich gleich Montag ausprobieren. :)
User since
2007-09-14
7
Artikel
BenutzerIn
Hallo nochmal,
ich habe jetzt sowohl die csv-Datei in utf8 gespeichert als auch den Binmode auf utf8 angepasst. Und tatsächlich: es funktioniert. Also vielen, vielen Dank. :)
Aber eine Anschlussfrage:
Ist UTF8 in allen Browsern als Default eingestellt? (Sobald ich im Browser einen anderen Schriftsatz einstelle ist jetzt nämlich Schluss mit Umlauten).
User since
2007-05-11
923
Artikel
HausmeisterIn
Findest du es nicht ein bisschen dreist, sowohl hier als auch in d.c.l.p.misc zu fragen, ohne das jeweils zu erwähnen? Und mich dann noch per Mail fragen?
Wenn ich so etwas sehe bereue ich meine Hilfsbereitschaft.
http://groups.google.com/group/de.comp.lang.perl.m...
User since
2005-01-17
14794
Artikel
Admin1
abadiya+2007-09-17 09:25:51--
Aber eine Anschlussfrage:
Ist UTF8 in allen Browsern als Default eingestellt? (Sobald ich im Browser einen anderen Schriftsatz einstelle ist jetzt nämlich Schluss mit Umlauten).
Nein, wie sollte es.
DU musst schon Abfragen, was der Browser für Zeichensätze kennt.
Steht in der CGI-Umgebungsvariable HTTP_ACCEPT_CHARSET
Beispiel:
iso-8859-1, utf-8, utf-16, *;q=0.1