Schrift
[thread]12498[/thread]

Kann Perl UTF-8 nicht richtig parsen?

Leser: 1


<< >> 3 Einträge, 1 Seite
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.
pq
 2008-09-15 18:43
#114671 #114671
User since
2003-08-04
12208 Artikel
Admin1
[Homepage]
user image
also ich sehe da hinter jedem monat einen punkt, ausser beim mai. du matchst in deiner
regex aber zwingend auf den punkt.
Always code as if the guy who ends up maintaining your code will be a violent psychopath who knows where you live. -- Damian Conway in "Perl Best Practices"
lesen: Wiki:Wie frage ich & perlintro Wiki:brian's Leitfaden für jedes Perl-Problem
Gast Gast
 2008-09-15 18:47
#114672 #114672
Der Beitrag kann gelöscht werden. Ich Schlumpf habe stundenlang übersehen, dass der Mai natürlich nicht von einem Punkt wie die anderen Monate gefolgt wird.

Mit UTF-8 hat das also gar nichst zu tun.
Danke + Gruß
<< >> 3 Einträge, 1 Seite



View all threads created 2008-09-15 18:16.