Advertising
LEO

It looks like you’re using an ad blocker.

Would you like to support LEO?

Disable your ad blocker for LEO or make a donation.

 
  •  
  • Subject

    are escaped by

    Sources

    Double quote characters within a field "are escaped by" another double quote character

    Comment

    Wie versteht ihr den markierten Ausdruck in diesem Kontext? Ich würde ihn (intuitiv) mit "gefolgt von" übersetzen, kann dazu aber im Merriam Webster zum Beispiel keine Anhaltspunkte finden.

    AuthorDo32_0 (1353175) 18 Aug 22, 07:37
    Comment

    https://de.wikipedia.org/wiki/Escape_(Steuerz...

    https://help.sap.com/doc/abapdocu_750_index_h...


    "escaped by" wäre dann ein Escape-Zeichen voranstellen, wenn ich das richtig verstehe


    hier noch eine weitere Diskussion in die ähnliche Richtung:

    related discussion: to strip characters

    #1Authortelly (520167) 18 Aug 22, 08:46
    Comment

    Aus dem Wiki-Link in #1 :


     Das Escape (ESC oder ^[, deutsch ungebräuchlich Fluchtsymbol, Unicode-Repräsentation: ␛) ist ein ASCII-Steuerzeichen (hexadezimal: \x1B, dezimal 27), das in einigen Ausgabegeräten eine Escape-Sequenz einleitet.

    Falls das jeweilige Ausgabegerät, beispielsweise ein Terminal, dieses Steuerzeichen unterstützt, so erwartet es in der Folge weitere Zeichen. Das einleitende ESC-Zeichen und die folgenden Zeichen werden als Escape-Sequenz bezeichnet. Das Escape-Zeichen ist das erste Zeichen einer solchen Sequenz, folgende Zeichen sind Bestandteile dieser Sequenz und sind daher nicht als gewöhnliche Zeichen zu interpretieren. Abschlusszeichen markieren das Ende einer solchen Escape-Sequenz, mit dem das Gerät wieder zur normalen Interpretation von Zeichen zurückkehrt.

    Ein früher Hinweis auf den Begriff „Escape-Zeichen“ findet sich um 1961 in den technischen Veröffentlichungen von Bob Bemer von IBM, dem die Erfindung dieses Mechanismus während seiner Arbeit am ASCII-Zeichensatz zugeschrieben wird. 1965 wurde das Zeichen mit der Norm ASA X3.4-1965 (approved, nicht veröffentlicht) bzw. 1967 mit USAS X3.4-1967 (veröffentlicht) eingeführt. Escape-Sequenzen wiederum wurden später zu ANSI-Escape-Codes weiterentwickelt, die in der Norm ANSI X3.4-1968 enthalten sind. ...


    #2Authorno me bré (700807) 18 Aug 22, 09:30
    Comment

    Aber in diesem Fall würde die Funktion des vorangestellten Escape-Zeichens von einem vorangestellten weiteren Anführungszeichen übernommen, oder?

    #3AuthorMattes (236368) 18 Aug 22, 09:51
    Comment

    Vielen Dank für eure Hilfe! Mattes, ich denke, du hast vollkommen Recht. Es müsste sich um ein weiteres vorangestelltes Anführungszeichen handeln.

    #4AuthorDo32_0 (1353175) 18 Aug 22, 09:56
    Comment

    Was das Amateurlexikon verschweigt: Das Escape-Zeichen dient beim Programmieren als Umschaltzeichen zwischen der normalen Zeichendarstellung und der Sonderfunktion von Zeichen. Eine "Escape-Sequenz" ist eine Zeichenfolge, die durch das vorangestellte Escape-Zeichen als Programmierkode interpretiert wird.


    Im Beispielsatz oben wird "escape" als Verb nicht nur im Sinn von voranstellen, sondern von "umrahmen", "einfassen" gebraucht. Der Ausdruck in doppelten Anführungszeichen wird also noch einmal durch Anführungszeichen am Anfang und Ende eingefasst.

    #5AuthorRominara (1294573)  18 Aug 22, 12:52
    Comment

    Grundsätzlich ist das Problem, dass Texte von einem System immer interpretiert werden müssen, weil viele der Zeichen Sonderfunktionen haben, oder sei es nur, um zu wissen, wo er anfängt und aufhört. Ganz besonders tückisch sind hierbei die Anführungszeichen, weil diese üblicherweise das Ende eines Strings (Textes) andeuten, aber auch im Text eine Bedeutung haben könnten, und wenn sie dann im Text auftauchen aber als String-Ende interpretiert werden, die Struktur des Datenstroms zerstören. Rominara hat in der #5 also "fast" Recht: es geht darum, dem System zu sagen, dass das folgende eben NICHT als Programmcode interpretiert werden soll, sondern einfach nur so dargestellt werden soll, wie er da steht.


    Das Escapen (ja, das wird auch im Deutschen so genannt) ist aber kein Umrahmen, sondern eine schlichte Kenntlichmachung eines Zeichens. Da der double quote als Steuerzeichen interpretiert werden könnte (und den String beendet), wird er doppelt ausgeführt. Diese Sequenz aus "" innerhalb eines Strings wird dann interpretiert als ", wenn es um die Weiterverarbeitung oder Anzeige des Strings geht. Bei Texten, die in single quotes eingefasst werden, werden dann vorkommende einfache Hochkommas ebenfalls doppelt ausgeführt, um dem System zu sagen "das ist Text, kein Steuerzeichen, der Text geht danach noch weiter".


    Übliche andere Sonderzeichen in Strings sind auch der Backslash, da er selbst auch als Escape-Zeichen fungiert, sowie das Prozentzeichen, Dollarsymbol und Hashtag, die je nach Programmiersprache Textmakros oder einzufügende Variablenwerte anzeigen. Wenn die als entsprechende Zeichen angezeigt werden sollen, müssen die ebenfalls "escaped" werden, das wird bei denen dann aber üblicherweise durch den oben beschriebenen Backslash gemacht.


    Die Technik, dem System zu sagen "Das ist jetzt kein Steuerzeichen für Dich, sondern nimm das Zeichen bitte so, wie Du es vorfindest" nennt man in der Informatik dann halt so, weil solche Abschnitte früher mit einem Escape-Zeichen und entsprechender Sequenz eingeleitet wurden.


    Bei der Escape-Sequenz, die explizit als Steuerbefehl interpretiert werden soll (also z.B. der Charakter 12 als Seitenumbruch oder die üblichen HTML-Tags) spricht man eigentlich nicht vom Escapen. Rominara hat zwar Recht, dass dies auch Escape-Sequenzen sind, diese Art der erzwungenen Interpretation passt aber nicht zur Anfrage im OP.

    #6Authorm.dietz (780138)  18 Aug 22, 14:05
    Comment

    Wow! Vielen herzlichen Dank für diese sehr hilfreiche und ausführliche Erklärung und das Insiderwissen! Diesen Beitrag werde ich mir gut abspeichern. Nochmals danke!!!

    #7AuthorDo32_0 (1353175) 19 Aug 22, 08:24
    Comment

    Was in diesem Fall an Kontext-Information fehlt, ist die Art des "Feldes", um das es geht.


    Vermutlich geht es um einen Text (Zeichenkette, String), der innerhalb der Niederschrift eines Programmskriptes erscheint, und im Verlaufe der Ausführung des Programms auf einem Ausgabegerät erscheinen soll. Solche Texte werden zuweilen innerhalb des Programms von Anführungszzeichen umrahmt.


    Hypothetisches Beispielprogramm. Hier speichert die erste Zeile einen Text in der Variablen "A" ab.

    Die zweite Zeile druckt den Text auf dem Ausgabegerät.


    Let A = "Dieser Text soll gedruckt werden"

    Print A


    In einer solchen Konstellation kann der zu druckende Text kein Anführungszeichen enthalten, weil das erste Anführungszeichen im Text den Text beenden würde, und der nachfolgende Textrest einen Syntaxfehler im ausführbaren Progamm darstellen würde.


    Man hilft sich, indem man vor ein auszudruckendes Zeichen, welches für den Programmtext eine Sonderbedeutung hat, ein Escape-Zeichen setzt. Dies hebt die Sonderbedeutung des folgenden Zeichens (Stringende) auf. In diesem Fall ist das Escape-Zeichen kein Steuerzeichen im Zeichenvorrat außerhalb der druckbaren Zeichen, sondern gehört zu den normalen druckbaren Zeichen.


    (Das ist deshalb üblich, weil die Einbettung von "echten" Steuerzeichen wie Zeilenumbrüchen etc. den Editor verwirren würde, mit dem man den Programmtext erfasst und bearbeitet.)


    Let A= "Dieser Text wird mit zwei ""Anführungszeichen"" ausgedruckt"

    #8AuthorHarald (dede) [de] (370386)  19 Aug 22, 10:12
     
  •  
  •  
  •  
  •  
  •  
  
 
 
  • Pinyin
     
  • Keyboard
     
  • Special characters
     
  • Lautschrift
     
 
 
:-) automatisch zu 🙂 umgewandelt