perlunity.de - PERL | JAVASCRIPT | PHP | MySQL | APACHE



#!/COMMUNITY

Members: 5374
davon online: 1
weitere User: 25
Click for quality!




11.02.2012 / 23:01

Community-Member werden   |   Paßwort vergessen   |   OnlineMonitor (1) Wer ist online ... OnlineMonitor starten !
     

 

Home


PERLscripts


PHPscripts


JAVAscripts


Hilfreiches


Links2www


Newscenter


Community


Interna




Community  »  CGI: Allgemeines Forum zur Themenübersicht Themensuche Themenansicht in Thread-Modus


BeitragEingabe mit Textdatei vergleichen (Problem mit Umlauten)
Seitenanfang
Hi,

ich will den Inhalt eines Textfelds mit den Zeilen einer Textdatei vergleichen. Funktioniert im Prinzip auch alles wunderbar.

Einziges Problem: Groß-/Kleinschreibung und die deutschen Umlaute. Damit ich möglichst viele Treffer erhalte, möchte ich die Groß-/Kleinschreibung ignorieren. Allerdings geht use locale und /i bei Strato nicht.

Also brauche ich entweder eine Lösung, wie ich perllocale bei Strato installiert bekomme oder ich muss die Eingabe und die Zeilen der Textdatei von Hand komplett in Kleinschreibung umwandeln. Für die normalen Zeichen mit lc() kein Problem. Die Umlaute der Eingabe (über ein Webformular, d.h. Textfeld) habe ich auch schon in Kleinschreibung umgewandelt (UTF-8 Kodierung). Was fehlt sind die Zeilen der Textdatei. Ganz normale Textdatei, erstellt unter Windows XP SP2. Welche Kodierung liegt hier vor? Bei $line =~ s/Ö/ö/g; oder $wort =~ s/chr(hex(D6))/chr(hex(F6))/g; tut sich gar nichts und auch diverse andere Möglichkeiten habe ich schon erfolglos ausprobiert... . Vielleicht gibt's ja auch noch eine einfachere Möglichkeit? Am liebsten wäre es mir, wenn ich das mit perllocale und /i lösen könnte, wäre der geringste aufwand.

Datum: 09.06.2007-16:53

Beitragre: Eingabe mit Textdatei vergleichen (Problem mit Umlauten)
Seitenanfang
Hi

Dein Problem ist mir nicht ganz klar.
Für Regexes funzt eigentlich in jedem Fall der Zusatz /i auch ohne das einbinden ext. Module.

$line =~ s/Ö/ö/g;

Diese Schreibweise des Regexes allerdings hat mich schon zum Wahnsinn getrieben und führt zu seltsamen Fehlfunktionen :)
Besser sollte es so laufen:

$line=~s/Ö/ö/g;

Solltest du mit Shellausgaben arbeiten kann dort dein Sonderzeichen nicht mit ausgegeben werden.

Hier ein kleines Beispielscript das ich getestet habe :

################# Script ###################

#!/usr/bin/perl

$line='Ö';

$line=~s/Ö/ö/g;

open(DATA,">out.txt");
print DATA $line;
close(DATA);

exit(0);

#############################################

MFG Sonixx

Datum: 13.06.2007-22:40

-






-
-