lc lokalisieren
Tobias
Hi,
ich habe Probleme der Perl-Funktion lc() beizubringen, daß sie auch meine deutschen Umlaute in Kleinbuchstaben verwandeln soll. Ich habe in der Forums-Auslese, im Forums-Archiv, in meinen 2 Perl-Büchern und in den Man-Pages gesucht, aber leider trotzdem keine brauchbaren Ergebnisse erzielt.
Mein Test-Skript sieht momentan so aus:
--
use POSIX qw(locale_h);
setlocale(LC_CTYPE, "de_DE");
print lc('HÄLLÖ'), "\n";
print 'hällö';
--
anstelle von 'de_DE' habe ich schon 'german', 'ge', 'de' und 'de_DE.ISO8859-1' probiert (bei letzterem ist Perl gleich abgestürzt *g*)
Mache ich irgend etwas falsch? Vielleicht weiß ja jemand genaueres.
Gruß,
Tobias
hi!
ich habe Probleme der Perl-Funktion lc() beizubringen, daß sie auch meine deutschen Umlaute in
Kleinbuchstaben verwandeln soll.
use locale;
print lc('HÄLLÖ'), "\n";
print 'hällö';
bye, Frank!
hi!
ich habe Probleme der Perl-Funktion lc() beizubringen, daß sie auch meine deutschen Umlaute in
Kleinbuchstaben verwandeln soll.use locale;
print lc('HÄLLÖ'), "\n";
print 'hällö';
Geht leider nicht. Die Ausgabe sieht dann so aus: "hxllÖ".
Habe übrigens Active Perl und Apache laufen.
Tobias
hi!
use locale;
print lc('HÄLLÖ'), "\n";
Geht leider nicht. Die Ausgabe sieht dann so aus: "hxllÖ".
Dann ist dein System vermutlich falsch konfiguriert. Lies dir dazu am besten die passende man-Page durch:
perldoc locale
perldoc perllocale
Ist übrigens auch als HTML-Dokument in ActivePerl enthalten.
Habe übrigens Active Perl und Apache laufen.
Ich auch.
bye, Frank!
Hi,
Dann ist dein System vermutlich falsch konfiguriert. Lies dir dazu am besten die passende man-Page durch:
perldoc locale
perldoc perllocaleIst übrigens auch als HTML-Dokument in ActivePerl enthalten.
Ich weiß :-) Ich habe das ja dort abgeschrieben. Geht nur leider nicht...
Und ehrlich gesagt wüßte ich nicht, wo ich irgendetwas konfigurieren könnte...
Tobias
Hallo zusammen,
Auf Linux mit 5.005_2 sieht die Ausgabe vom Originalscript und von der normalen use locale version merkwürdigerweise so aus:
hÄllÖ
hällö
Merkwürdig, irgendeine Ahnung?
Oder bin ich nur wieder in irgendeine Falle getappt? ;-)
sehr verwundert
Christoph
hi!
Auf Linux mit 5.005_2 sieht die Ausgabe vom Originalscript und von der normalen use locale version
merkwürdigerweise so aus:hÄllÖ
hällöMerkwürdig, irgendeine Ahnung?
Oder bin ich nur wieder in irgendeine Falle getappt? ;-)
Nein, so ist es genau richtig.
bye, Frank!
Hallo Frank,
Nein, so ist es genau richtig.
D.h. lc() wandelt keine Umlaute um?
Ist aber auch nicht gerade nett von ihm.
Irgendein _simpler_ Workaround oder nur den "harten" Weg?
Moment, mit use locale geht es doch (Irrtum von mir, Änderung wohl nicht gespeichert, sorry)
Nur mit dem Ursprungsscript klappt es nicht, da werden die Umlaute nicht klein.
Die Fehlerursache interessiert mich jetzt doch.
Sollte das zu sehr in die Abgründe von Perl gehen und deshalb evt OT werden, auch per PM.
so short
Christoph
Hi,
D.h. lc() wandelt keine Umlaute um?
Ist aber auch nicht gerade nett von ihm.
Der Punkt ist, daß *Du* Deine Anforderung so formulieren mußt, daß Perl versteht, was Du meinst. Was genau ist für *Dich* ein Umlaut? In welcher Sprache sprichst Du? Das mußt Du Perl irgendwie vermitteln, und Perl muß demzufolge die Menge der umzusetzenden "Buchstaben" Deinen Anforderungen anpassen.
Unter UNIX ist es üblicherweise die Environment-Variable $LANG, in welcher man solche Informationen in standardisierter Form ablegen kann - aber Du mußt Perl offenbar auch noch motivieren, diese zu lesen und damit seine eingebauten Default (welche in Deinem Fall nicht für Umlaute auszureichen scheinen) zu überdecken. Genau das scheint mir "use locale" zu tun (ohne daß ich jetzt in die Doku geschaut hätte).
mfG - Michael (der gestern dasselbe Problem hatte, es aber erst mal liegen gelassen hat, weil anderes wichtiger war - danke, Frank!)