ausgewertet? Ich wollte einen String mit einem Text \1
.Warum wird " 1" in einem String mit drei Anführungszeichen zu einem Unicode-0x1-Codepunkt
Was ich tat, war (die reale Saite war länger, aber es ist nicht wichtig):
'''
\1
'''
, die in einem String führte eine Unicode 0x1
Codepunkt enthält.
Ich denke, was ich den umgekehrten Schrägstrich wie dies gerade getan haben sollte, ist zu entkommen:
'''
\\1
'''
Was ich nicht verstehe ist, warum Groovy hier keinen Fehler melden. Ich dachte Unicode Escapes sind supposed to look like \u1
?
Statt einem Syntaxfehler ich eine Laufzeitausnahme bekam, als ich diesen String in ein XML-Element zu setzen versucht:
An invalid XML character (Unicode: 0x1) was found in the element content of the document.
Jetzt, wo Sie es darauf hingewiesen wurde mir klar, es ist die [Oktal Escape-Sequenz] (https://docs.oracle.com/javase/specs/jls/se8/html/jls-3.html#jls-3.10.6) - Ich könnte schwören, dass sie mit '\ 0' beginnen müssen aber anscheinend tun sie nicht –
Re. slashy string - schöner Vorschlag, aber eigentlich will ich hier keine Interpolation –