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



#!/COMMUNITY

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




12.02.2012 / 00:12

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

 

Home


PERLscripts


PHPscripts


JAVAscripts


Hilfreiches


Links2www


Newscenter


Community


Interna




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


BeitragDoppelt Backslash im String erhalten
Seitenanfang
Hallo,

aus einer Datenbank bekomme ich Werte die auch mal ein doppelten Backslash \\ enthalten. Wenn ich den Wert in eine Tabelle schreibe bleibt nur noch ein Backslash übrig. Frage ich jetzt beim nächsten mal in der Tabelle ab ob der Wert schon vorhanden ist findet er ihn natürlich nicht, da er mit einem Backslash in der Datenbank steht.

Ich hab mir gedacht, dass man die Backslashs gleich bei der Übergabe an Perl durch einen x-beliebigen String ersetzen könnte, um das escpaen zu verhindern, aber das funktioniert nicht.

$eingabe = 'test\\ test';
$eingabe =~ s/[[\\]/ersatz/g;
print $eingabe;

> testersatz test

$eingabe = 'test\ test';
$eingabe =~ s/[[\\]/ersatz/g;
print $eingabe;

> testersatz test

# Gleiche Ausgabe zwischen \ und \\

my $eingabe = 'test\\ test';
print length($eingabe);

> 10 # Es sind auch nur 10 angekommen, bei Übergabe noch 11 Zeichen

Für eine Lösung bin ich dankbar.

Gruß

Datum: 17.09.2007-20:10

Beitragre: Doppelt Backslash im String erhalten
Seitenanfang
Hallo,

die Frage ist, wird dein Wert beim Schreiben oder beim lesen verändert?

In MySQL zum Beispiel werden in Zeichenketten die \ als Escape-Zeichen verwendet. Sie können also oft nicht alleine stehen, sondern es wird das nachfolgende Zeichen mit betrachtet, ob sich damit eine Escape-Sequenz ergibt.

Ein einzelnes \ muss also als \\, ein doppeltes als \\\\ gespeichert werden und sollte beim Lesen auch wieder so erscheinen.

Grüße,
gelb

Datum: 18.09.2007-20:52

-






-
-