Schrift
Wiki:Tipp zum Debugging: use Data::Dumper; local $Data::Dumper::Useqq = 1; print Dumper \@var;
[thread]11491[/thread]

Umlaute & Sonderzeichen

Leser: 5


<< |< 1 2 >| >> 11 Einträge, 2 Seiten
aspnstyle
 2008-03-19 16:13
#107260 #107260
User since
2008-03-18
23 Artikel
BenutzerIn
[default_avatar]
Schönen Nachmittag

Ich habe eine kleine frage und zwar lese ich gerade mittels Win32::OLE eine Word datei aus und übergieb den Inhalt an eine Variable und gib sie dann aus. Da im Word ja immer umlaute und sonderzeichen verwendet werden (ä,ö,ü,`,...) schreibt er mir natürlich das zeichen nicht.


Hab jetzt schon eine andere encodierung genommen

Code: (dl )
binmode(STDOUT, ":encoding(cp437)"); #damit Umlaute richtig dargestellt werden


damit werden umlaute richtig dargestellt aber leider nich keine Sonderzeichen ins besondere dieses hier was mir wichtig wäre " ´ ". gibt es eine Möglichkeit dieses auch noch darzustellen?
moritz
 2008-03-19 16:26
#107261 #107261
User since
2007-05-11
923 Artikel
HausmeisterIn
[Homepage]
user image
Bist du dir denn sicher, dass dein Terminal auf cp437 eingestellt ist?
Bei den Sonderzeichen, die nicht richtig dargestellt werden, solltest du mal mal mit der Funktion ord() schauen, was die für einen Codepoint haben, und dann nachschauen, ob es dieses Zeichen in cp437 überhaupt gibt.
aspnstyle
 2008-03-19 16:33
#107263 #107263
User since
2008-03-18
23 Artikel
BenutzerIn
[default_avatar]
dieses cp437 war nur eine schnelle lösung die ich im internet über das Thema Umlaute gelesehabe.


wie stell ich das an ohne das ich cp437 verwende (muss)?
moritz
 2008-03-19 16:42
#107264 #107264
User since
2007-05-11
923 Artikel
HausmeisterIn
[Homepage]
user image
aspnstyle+2008-03-19 15:33:02--
wie stell ich das an ohne das ich cp437 verwende (muss)?


Zuerst musst du herausfinden, welchen Charset dein Terminal unterstützt.

Da du uns nicht verräts, welches das ist, bleibt uns nur auf die Dokumentation des Herstellers zu verweisen.

In alten Windows-Versionen wird das in der autoexec.bat mit "mode con codepage prepare..." oder so konfiguriert, mit neuerem Windows-Zeugs kenne ich mich nicht aus.
aspnstyle
 2008-03-19 16:52
#107266 #107266
User since
2008-03-18
23 Artikel
BenutzerIn
[default_avatar]
Zuerst musst du herausfinden, welchen Charset dein Terminal unterstützt.
wie finde ich das heraus? ich verwende ActivePerl rechner Windows XP :D



Eine andere Frage ich möchte eine Datei erstellen die als Dateinamen das Datum hat wie unten. Das macht er mir aber leider nicht. was ist der Fehler? weil er gibt mir auch keine Fehlermeldung aus.
Code: (dl )
1
2
my $dateizeit = time2str( "%Y%m%d%H%M%S\n", time ); #JahrMonatTagStundeMinuteSekunde
open(my $datei, ">".$dateizeit.".txt"); # Datei zum Schreiben öffnen
moritz
 2008-03-19 17:06
#107268 #107268
User since
2007-05-11
923 Artikel
HausmeisterIn
[Homepage]
user image
aspnstyle+2008-03-19 15:52:33--
Zuerst musst du herausfinden, welchen Charset dein Terminal unterstützt.
wie finde ich das heraus? ich verwende ActivePerl rechner Windows XP :D


Wie gesagt, mit Windows kenne ich mich kaum aus. Das muss in der Dokumentation der Kommandozeile stehen.

Quote
Eine andere Frage ich möchte eine Datei erstellen die als Dateinamen das Datum hat wie unten. Das macht er mir aber leider nicht. was ist der Fehler? weil er gibt mir auch keine Fehlermeldung aus.
Code: (dl )
1
2
my $dateizeit = time2str( "%Y%m%d%H%M%S\n", time ); #JahrMonatTagStundeMinuteSekunde
open(my $datei, ">".$dateizeit.".txt"); # Datei zum Schreiben öffnen


Lass dir mal $datezeit ausgeben, bevor du die Datei öffnest. Enthält es wirklich den Wert, den du erwartest?

Noch viel wichtiger: Frage den Erfolg von open ab:
Code: (dl )
1
2
open my $date, '>', "$dateizeit.txt"
or die "Can't open file '$dateizeit.txt' for writing: $!";
aspnstyle
 2008-03-19 17:23
#107269 #107269
User since
2008-03-18
23 Artikel
BenutzerIn
[default_avatar]
vielen dank

hab den fehler gefunden
my $dateizeit = time2str( "%Y%m%d%H%M%S\n", time ); #JahrMonatTagStundeMinuteSekunde


hatte hier in \n also musste ich es chompen oder einfach das \n weglassen.... immer diese dummen fehler *gg*
aspnstyle
 2008-03-19 17:57
#107271 #107271
User since
2008-03-18
23 Artikel
BenutzerIn
[default_avatar]
andere frage ich müsste auch noch eine ordnerauslese machen aber es soll mir nur die .doc dateien anzeigen. Ordner auslesen funktioniert soweit aber wie überprüfe ich die endung?


Code (perl): (dl )
1
2
3
4
5
opendir DIR, $Verzeichnis or die $!;
while( my $entry = readdir DIR ){
print $entry,"\n";
}
closedir DIR;
nepos
 2008-03-19 18:50
#107275 #107275
User since
2005-08-17
1420 Artikel
BenutzerIn
[Homepage] [default_avatar]
So zum Beispiel:
Code (perl): (dl )
print $entry, "\n" if ( $entry =~ /\.doc$/i );

Bei dem i bin ich mir nicht sicher, obs das bei Windows braucht.
aspnstyle
 2008-03-19 19:06
#107276 #107276
User since
2008-03-18
23 Artikel
BenutzerIn
[default_avatar]
vielen lieben dank
<< |< 1 2 >| >> 11 Einträge, 2 Seiten



View all threads created 2008-03-19 16:13.