Thread Kann Perl UTF-8 nicht richtig parsen? (2 answers)
Opened by Gast at 2008-09-15 18:16

Gast Gast
 2008-09-15 18:16
#114669 #114669
Hallo, ich versuche mit Perl 5.10 unter Cygwin folgendes:

Eine UTF-8-codierte HTML-Seite wird mit CURL geladen und per Pipe an ein Perl-Skript gegeben, das mir daraus Daten (Tage) extrahieren soll, nach dem Muster

Code: (dl )
HH:MM, D[D]. (Jan|Feb|Mär|...|Dez). YYYY


Hier ist der Perl-Code:
Code (perl): (dl )
1
2
3
4
5
6
7
8
9
binmode STDIN, ":utf8";

while (<STDIN>)
{
  if ( 0 != m/\d\d:\d\d, \d\d?\. ...\. 20\d\d/)
  {
     print "$&\n";       
  }
}


Hier ist eine beispielhafte (zur besseren Lesbarkeit gekürzte) Eingabe:
Code: (dl )
1
2
3
4
5
6
7
8
9
10
11
<li>11:54, 3. Jun. 2008 (<a href=
<li>16:05, 29. Mai 2008 (<a href=
<li>13:49, 5. Mai 2008 (<a href=
<li>13:32, 5. Mai 2008 (<a href=
<li>16:23, 29. Apr. 2008 (<a href
<li>kein Datum
<li>01:10, 5. Apr. 2008 (<a href=
<li>12:25, 1. Apr. 2008 (<a href=
<li>23:46, 31. Mär. 2008 (<a href
<li>12:14, 30. Mär. 2008 (<a href
<li>18:15, 24. Feb. 2008 (<a href=


und hier ist die Ausgabe, die man erhält:
Code: (dl )
1
2
3
4
5
6
7
11:54, 3. Jun. 2008
16:23, 29. Apr. 2008
01:10, 5. Apr. 2008
12:25, 1. Apr. 2008
23:46, 31. Mär. 2008
12:14, 30. Mär. 2008
18:15, 24. Feb. 2008


Wo ist der Mai? Sieht so aus, als würde das UTF-8-kodierte "ä" im März dem automatisch generierten Parser ein Bein stellen, so dass er den Mai nicht mehr erkennt, denn der März wird ja tadellos angegeben.

Ist das Problem bekannt? Was habe ich übersehen?
Danke und Gruß, Stefan E.

View full thread Kann Perl UTF-8 nicht richtig parsen?