Virtuella: Zwei Sonderzeichen sollen nicht durch Zeilenumbruch getrennt werden können

Hallo, ich möchte bei einem Text verhindern, dass Sonderzeichen wie diese ♂♀ nicht durch einen Zeilenumbruch auseinandergerissen werden. Geht das mit

<nobr>♂♀</nobr>

? Das ist das einzige, was ich gefunden habe. Gibt es noch anderen Möglichkeiten?

Grüßlis

  1. ♂&nbsp;♀

    1. Danke für deine schnelle Antwort! Aber dann ist ein Leerzeichen dazwischen, oder? Das will ich nicht.

      1. Hi,

        Danke für deine schnelle Antwort! Aber dann ist ein Leerzeichen dazwischen, oder? Das will ich nicht.

        Dann nimm einen Zero-Width-Joiner statt des non-breaking-space.

        cu,
        Andreas a/k/a MudGuard

  2. Hallo Virtuella,

    wenn deine Zeichenfolge ♂♀ in Leerstellen eingeschlossen ist, sollte sie als Wort betrachtet werden und beisammen bleiben. Das Problem stellt sich in normalem Text eigentlich gar nicht. Selbst, wenn ich Silbentrennung einschalte, reißt er mir das „Wort“ ♂♀♂♀♂♀♂♀♂♀♂♀ nicht auseinander (und ja, ich habe lang="de" gesetzt - ein anderes Testwort trennt er).

    Welche spezielle Situation hast Du, dass er Dir das zerreißt? Sind die beiden Zeichen direkt nebeneinander im HTML? Ist zufällig an dieser Stelle die CSS Eigenschaft word-break: break-all; aktiv? Kannst Du die durch word-break: break-word; ersetzen?

    Rolf

    --
    sumpsi - posui - obstruxi
  3. @@Virtuella

    ich möchte bei einem Text verhindern, dass Sonderzeichen wie diese ♂♀

    Das sind keine Sonderzeichen.

    Sonderzeichen sind Zeichen, die in einem bestimmten Kontext ein besondere Funktion haben und deshalb gesondert behandelt werden müssen.

    Im HTML-Kontext betrifft das bspw. die Zeichen <, &, die ggfs. als &lt; bzw. &amp; zu notieren wären.

    nicht durch einen Zeilenumbruch auseinandergerissen werden.

    Wie hast du es geschafft, dass ♂♀ auseinandergerissen werden? Oder heißt „wie diese“, dass es bei dir um ganz andere Zeichen geht?

    Im Gegensatz zu ♂♀ werden bspw. 🧐🤨 auseinandergerissen, was sich – wie @MudGuard schon sagte – durch einen zero-width joiner verhindern ließe. Auch den gibt es in HTML als benannte Entity: &zwj;.

    Codepen

    😷 LLAP

    --
    „Dann ist ja auch schrecklich, dass wir in einem Land leben, in dem nicht nur Bildungswillige leben, sondern auch hinreichende Zahlen von Bekloppten. Das darf ich so locker formulieren, ich bin ja jetzt Rentner und muss nicht mehr auf jedes Wort achten.“
    — Joachim Gauck über Impfgegner
    1. Hallo Gunnar,

      Sonderzeichen sind Zeichen, die in einem bestimmten Kontext ein besondere Funktion haben und deshalb gesondert behandelt werden müssen.

      Das stimmt nicht - oder ist zumindest Ansichtssache. Die Wikipedia und die von ihr verlinkten Quellen vertreten eine andere Ansicht. Was Du ansprichst, sind Zeichen mit syntaktischer Funktion, oder reservierte Zeichen, die man kontextgerecht maskieren muss, wenn sie diese Funktion nicht wahrnehmen sollen.

      (Was die Menge der Zeichen mit syntaktischer Funktion und die Menge der Zeichen, die man maskieren muss, nicht gleichsetzt.)

      Sonderzeichen sind ein Sammelbegriff für alle Zeichen außerhalb des normalen Alphabets (wobei "normal" natürlich eine Funktion der verwendeten Sprache ist). Ob Ziffern Sonderzeichen sind oder nicht, wird gelegentlich diskutiert; im ASCII Kontext sind es keine. Ob Umlaute Buchstaben sind oder Sonderzeichen, wird im Deutschen auch diskutiert (im Schwedischen bspw. nicht)

      Also: Symbole wie ♂ ♀ sind definitiv Sonderzeichen. Ich kenne keine Sprache, die sie als reguläre Buchstaben nutzt.

      Im Gegensatz zu ♂♀ werden bspw. 🧐🤨 auseinandergerissen

      Huh?! Ja, ist so, aber wie kommt das? Ich weiß, dass Unicode Joining-Regeln für Zeichen hat, aber wenn ich mir die Zeichenbeschreibungen bei compart.com oder graphemica.com anschaue, sehe ich keinen Unterschied bei den Join-Attributen dieser Zeichen (jg, jt, Join_C) - allerdings ist die Anzeige bei graphemica so riesig und unübersichtlich, dass man da was übersehen kann. Dass ♂♀ in der BMP liegen und die Emojis in Plane 1, bzw. dass sich die einen 16-bittig codieren lassen und die anderen nicht, sollte wohl nicht der Auslöser sein dürfen.

      Rolf

      --
      sumpsi - posui - obstruxi
      1. Hallo Rolf,

        Sonderzeichen sind ein Sammelbegriff für alle Zeichen außerhalb des normalen Alphabets (wobei "normal" natürlich eine Funktion der verwendeten Sprache ist).

        das würde ich noch etwas anders formulieren: Sonderzeichen sind Zeichen außerhalb des üblichen alltäglichen Gebrauchs (wobei auch das z.B. je nach Sprache oder beruflicher Tätigkeit[1] unterschiedlich ausfällt). Für mich sind daher Buchstaben, Ziffern, Interpunktionszeichen oder auch der Klammeraffe keine Sonderzeichen; Blockgrafikzeichen und viele mathematische Symbole dagegen schon.

        Ob Ziffern Sonderzeichen sind oder nicht, wird gelegentlich diskutiert

        Ernsthaft??

        im ASCII Kontext sind es keine. Ob Umlaute Buchstaben sind oder Sonderzeichen, wird im Deutschen auch diskutiert (im Schwedischen bspw. nicht)

        Ich würde sagen: Wenn sie intrinsisch zur Sprache gehören, sind es in dieser Sprache normale Buchstaben, keine Sonderzeichen. Wie wir oben schon eingeräumt haben: Diese Differenzierung fällt nicht für alle Menschen gleich aus.

        Live long and pros healthy,
         Martin

        --
        Klein φ macht auch Mist.

        1. Für einen deutschen Ingenieur sind etwa das griechische µ und das Ω völlig normale Zeichen, für den deutschen Bäcker eher nicht. ↩︎