perl und Umlaute
am 27.09.2006 14:38:42 von Marc Wiemers
Hallo,
ich versuche verzweifelt auf einem Linixsystem perl beizubringen Files
umzubenennen die auch Umlaute haben können.
also so:
system ("mv '$i' '$ir'");
$i der alte Name und
$ir der neue mit Umlauten
ach lang sieht so aus:
LANG=de_DE@euro
Hat jemand eine Idee
Marc
Re: perl und Umlaute
am 27.09.2006 14:40:51 von Frank Seitz
Marc Wiemers wrote:
> ich versuche verzweifelt auf einem Linixsystem perl beizubringen Files
> umzubenennen die auch Umlaute haben können.
> also so:
>
> system ("mv '$i' '$ir'");
>
> $i der alte Name und
> $ir der neue mit Umlauten
> ach lang sieht so aus:
>
> LANG=de_DE@euro
>
> Hat jemand eine Idee
Vielleicht solltest Du noch dazu sagen, worin das Problem genau besteht.
Grüße
Frank
--
Dipl.-Inform. Frank Seitz; http://www.fseitz.de/
Anwendungen für Ihr Internet und Intranet
Tel: 04103/180301; Fax: -02; Industriestr. 31, 22880 Wedel
Re: perl und Umlaute
am 27.09.2006 14:56:11 von Mirco Wahab
Thus spoke Marc Wiemers (on 2006-09-27 14:38):
> ich versuche verzweifelt auf einem Linixsystem perl beizubringen Files
> umzubenennen die auch Umlaute haben können.
> also so:
>
> system ("mv '$i' '$ir'");
Beispiel? (Konket)
> Hat jemand eine Idee
Was spricht gegen
...
$status = rename($old, $new);
...
Viele Grüße
M.
Re: perl und Umlaute
am 28.09.2006 01:53:52 von Slaven Rezic
Marc Wiemers writes:
> Hallo,
>
> ich versuche verzweifelt auf einem Linixsystem perl beizubringen Files
> umzubenennen die auch Umlaute haben können.
> also so:
>
> system ("mv '$i' '$ir'");
>
> $i der alte Name und
> $ir der neue mit Umlauten
> ach lang sieht so aus:
>
> LANG=de_DE@euro
>
> Hat jemand eine Idee
Vielleicht ist es ein Encoding-Problem? Du musst auf jeden Fall die
Octets in $i im gleichen Encoding wie die Bytes deines Dateinamens auf
der Festplatte haben.
--
Slaven Rezic - slaven rezic de
Lost in your Tk widget tree? Try
http://user.cs.tu-berlin.de/~eserte/src/perl/Tk-WidgetDump/
Re: perl und Umlaute
am 28.09.2006 08:33:41 von Ferry Bolhar
Marc Wiemers:
> system ("mv '$i' '$ir'");
Warum verwendest du nicht den Befehl, den Perl
hierfür zur Verfügung stellt, also hier):
rename($i,$ir) or die "Rename fehlgeschlagen: $!\n";
"system" erzeugt eine Shell, in deren Context dann
der angegebene Befehl ausgeführt wird. Dass kann
zu Problemen führen, wenn in der Befehlszeile
Sonderzeichen (zu denen auch Umlaute zählen)
vorkommen.
LG, Ferry
--
Ing Ferry Bolhar
Magistrat der Stadt Wien - MA 14
A-1010 Wien
E-Mail: bol@adv.magwien.gv.at
Re: perl und Umlaute
am 28.09.2006 10:37:24 von Marc Wiemers
Hallo Ferry,
vielen Dank für den Tipp. Leider hat der rename Befehl das gleiche Ergebnis.
Das $ir wird über perTK eingelesen vielleicht ist das das Problem.
Ich weiß nicht weiter.
Marc
Ferry Bolhar wrote:
> Marc Wiemers:
>
>> system ("mv '$i' '$ir'");
>
> Warum verwendest du nicht den Befehl, den Perl
> hierfür zur Verfügung stellt, also hier):
>
> rename($i,$ir) or die "Rename fehlgeschlagen: $!\n";
>
> "system" erzeugt eine Shell, in deren Context dann
> der angegebene Befehl ausgeführt wird. Dass kann
> zu Problemen führen, wenn in der Befehlszeile
> Sonderzeichen (zu denen auch Umlaute zählen)
> vorkommen.
>
> LG, Ferry
>
Re: perl und Umlaute
am 28.09.2006 16:29:13 von KWittrock
"Marc Wiemers" schrieb im Newsbeitrag
news:efg1k4$ur$1@saphir.steine.home...
> Hallo Ferry,
>
> vielen Dank für den Tipp. Leider hat der rename Befehl das gleiche
> Ergebnis.
> Das $ir wird über perTK eingelesen vielleicht ist das das Problem.
> Ich weiß nicht weiter.
>
> Marc
>
> Ferry Bolhar wrote:
>
>> Marc Wiemers:
>>
>>> system ("mv '$i' '$ir'");
>>
>> Warum verwendest du nicht den Befehl, den Perl
>> hierfür zur Verfügung stellt, also hier):
>>
>> rename($i,$ir) or die "Rename fehlgeschlagen: $!\n";
>>
>> "system" erzeugt eine Shell, in deren Context dann
>> der angegebene Befehl ausgeführt wird. Dass kann
>> zu Problemen führen, wenn in der Befehlszeile
>> Sonderzeichen (zu denen auch Umlaute zählen)
>> vorkommen.
>>
>> LG, Ferry
>>
>
Hallo Marc,
> Das $ir wird über perTK eingelesen vielleicht ist das das Problem.
Genau. Perl/Tk wandelt alle Strings nach utf8. Wie Slaven schon schrieb,
musst du umkodieren. Versuch's mal mit
use Encode;
$ir = encode('iso-8859-1', $ir);
BTW, stelle doch bitte deine Antworten nicht nach oben.
Gruß
Klaus
Re: perl und Umlaute
am 28.09.2006 22:17:25 von Slaven Rezic
Marc Wiemers writes:
> Hallo Ferry,
>
> vielen Dank für den Tipp. Leider hat der rename Befehl das gleiche Ergebnis.
> Das $ir wird über perTK eingelesen vielleicht ist das das Problem.
> Ich weiß nicht weiter.
>
Hast du meinen Tipp weiter verfolgt? Weiterer Hinweis: alle Strings,
die aus Perl/Tk kommen, habe das utf-8-Bit gesetzt. Du musst also per
Encode.pm nach iso-8859-1 oder ...-15 kodieren, um das gewünschte
Ergebnis zu erhalten.
> Marc
>
> Ferry Bolhar wrote:
>
> > Marc Wiemers:
> >
> >> system ("mv '$i' '$ir'");
> >
> > Warum verwendest du nicht den Befehl, den Perl
> > hierfür zur Verfügung stellt, also hier):
> >
> > rename($i,$ir) or die "Rename fehlgeschlagen: $!\n";
> >
> > "system" erzeugt eine Shell, in deren Context dann
> > der angegebene Befehl ausgeführt wird. Dass kann
> > zu Problemen führen, wenn in der Befehlszeile
> > Sonderzeichen (zu denen auch Umlaute zählen)
> > vorkommen.
> >
> > LG, Ferry
> >
>
--
Slaven Rezic - slaven rezic de
tkrevdiff - graphical display of diffs between revisions (RCS, CVS or SVN)
http://ptktools.sourceforge.net/#tkrevdiff
Re: perl und Umlaute
am 29.09.2006 10:25:21 von Marc Wiemers
K. Wittrock wrote:
>
> "Marc Wiemers" schrieb im Newsbeitrag
> news:efg1k4$ur$1@saphir.steine.home...
>> Hallo Ferry,
>>
>> vielen Dank für den Tipp. Leider hat der rename Befehl das gleiche
>> Ergebnis.
>> Das $ir wird über perTK eingelesen vielleicht ist das das Problem.
>> Ich weiß nicht weiter.
>>
>> Marc
>>
>> Ferry Bolhar wrote:
>>
>>> Marc Wiemers:
>>>
>>>> system ("mv '$i' '$ir'");
>>>
>>> Warum verwendest du nicht den Befehl, den Perl
>>> hierfür zur Verfügung stellt, also hier):
>>>
>>> rename($i,$ir) or die "Rename fehlgeschlagen: $!\n";
>>>
>>> "system" erzeugt eine Shell, in deren Context dann
>>> der angegebene Befehl ausgeführt wird. Dass kann
>>> zu Problemen führen, wenn in der Befehlszeile
>>> Sonderzeichen (zu denen auch Umlaute zählen)
>>> vorkommen.
>>>
>>> LG, Ferry
>>>
>>
> Hallo Marc,
>
>> Das $ir wird über perTK eingelesen vielleicht ist das das Problem.
>
> Genau. Perl/Tk wandelt alle Strings nach utf8. Wie Slaven schon schrieb,
> musst du umkodieren. Versuch's mal mit
> use Encode;
> $ir = encode('iso-8859-1', $ir);
>
> BTW, stelle doch bitte deine Antworten nicht nach oben.
>
> Gruß
>
> Klaus
Hallo Klaus,
danke damit geht es!
Marc