Ich habe ein sehr seltsames Problem mit der Umwandlung von zwei "identischen" Strings in Großbuchstaben. Das Programm liest Zeilen von einer Website und vergleicht sie mit Zeilen, die in einer Textdatei gespeichert sind. Wenn die Zeile nicht gefunden wird, wird sie am Ende der Datei hinzugefügt. Dies funktioniert einwandfrei, wenn die Zeile keine Sonderzeichen enthält. Aus irgendeinem Grund führt der Vergleich zu einer Nichtübereinstimmung. Ich vergleiche die beiden Strings, indem ich sie zuerst in Großbuchstaben umwandle und das ist der Punkt, an dem es schief geht. Unten ist ein Code. Ich habe den Teil weggelassen, wo die zwei Variablen gefüllt sind. Ich zeige nur den komischen Teil.(Scheinbar) identische Strings in Großbuchstaben unterschiedlich konvertiert
print "$pageLine <-> $dbLine\n";
print uc($pageLine) . " <-> " . uc($dbLine) . "\n";
Dies führt zu
Diëtisten <-> Diëtisten
DIëTISTEN <-> DIËTISTEN
Beachten Sie, dass in der ersten E nicht in Großbuchstaben umgewandelt.
foreach my $kar (split(//, $pageLine)) {
print ord($kar) . ":";
}
print "\n";
foreach my $kar (split(//, $dbLine)) {
print ord($kar) . ":";
}
print "\n";
Daraus ergibt sich:
68:105:235:116:105:115:116:101:110:32:40:78:86:68:41:
68:105:235:116:105:115:116:101:110:32:40:78:86:68:41:
jemand eine Idee haben, was hier vor sich geht?
Vielen Dank im Voraus.
http://perldoc.perl.org/functions/fc.html könnte auch ein gutes Buch sein. – simbabque