Jerico: Was sind das für Zeichen??

Hallo zusammen,

Gleich vorweg, das hier ist sicher nicht der perfekte Ort für diese Frage, aber ich denke dass sich hier doch am ehesten einige Leute mit solchen Dingen auskennen.
Ich bin im Web über einen Textsmiley gestolpert, der mich ziemlich verwirrt hat:
⎝⏠⏝⏠⎠
Wie bekommt man sowas zustande?? Es wird offenbar als ganz normales Zeichen gespeichert, der Seitenquelltext in der HTML Seite wandelt nix in irgendwelche Unicode Zeichen um soweit ich das sehen kann. Mein altes Office 2000 stellt jedoch nur 5 Quadrate dar, also irgendwelche nicht ASCII konforme Zeichen.

Wie kann es sein, dass ein Symbol eine Zeilenhöhe von mehr als einer Zeile hat?? Bekomm ich irgendwie die Unicode Codes (oder was auch immer es sein mag) dafür heraus?

Wie heisst so "Zeug" den korrekt, sind das irgendwelche Sonder-Sonderzeichen? Ich wusste nicht mal genau wonach ich da googeln sollte...

Grüße
Jeri

  1. @@Jerico:

    nuqneH

    ⎝⏠⏝⏠⎠
    Wie bekommt man sowas zustande?? Es wird offenbar als ganz normales Zeichen gespeichert

    Alle Zeichen sind ganz normal. Außer Sonderzeichen: in HTML < und &, evtl. auch ", ' und >.

    der Seitenquelltext in der HTML Seite wandelt nix in irgendwelche Unicode Zeichen um soweit ich das sehen kann.

    Alle Zeichen sind Unicode-Zeichen. Was meinst du mit umwandeln?

    Wie kann es sein, dass ein Symbol eine Zeilenhöhe von mehr als einer Zeile hat??

    Weil die für das Symbol verwendete Schriftart eine höhere Zeilenhöhe verlangt. Nicht höher als eine Zeile, sondern die Zeile ist höher (als wenn nur lateinische Zeichen in ihr wären).

    Bekomm ich irgendwie die Unicode Codes (oder was auch immer es sein mag) dafür heraus?

    Am einfachsten mit dem String analyser: ⎝⏠⏝⏠⎠

    sind das irgendwelche Sonder-Sonderzeichen?

    Nein; s.o.

    Qapla'

    --
    Wer möchte nicht lieber durch Glück dümmer als durch Schaden klüger werden? (Salvador Dalí)
    1. ⎝⏠⏝⏠⎠

      Hat jemand auch das Darstellungsproblem, dass der "Mund" (U+23DD BOTTOM PARENTHESIS) auf der Mittellinie statt der Grundlinie (siehe: typografische Begriffe) dargestellt wird? Wie komme ich der fehlerhaften Schriftart unter X/fontconfig auf die Schliche?

    2. gudn tach!

      ⎝⏠⏝⏠⎠
      Wie bekommt man sowas zustande?? Es wird offenbar als ganz normales Zeichen gespeichert

      Alle Zeichen sind ganz normal. Außer Sonderzeichen: in HTML < und &, evtl. auch ", ' und >.

      und genau um sowas geht es doch vermutlich, naemlich um per "&" eingeleitete entities.

      der Seitenquelltext in der HTML Seite wandelt nix in irgendwelche Unicode Zeichen um soweit ich das sehen kann.

      Alle Zeichen sind Unicode-Zeichen. Was meinst du mit umwandeln?

      weisst du wirklich nicht, was der fragesteller meinte?

      Bekomm ich irgendwie die Unicode Codes (oder was auch immer es sein mag) dafür heraus?

      Am einfachsten mit dem String analyser: ⎝⏠⏝⏠⎠

      das ist allerdings wirklich cool, und macht die seltsamen obigen antworten wieder wett. ;-)

      prost
      seth

  2. hi,

    Wie bekommt man sowas zustande?? Es wird offenbar als ganz normales Zeichen gespeichert,

    Hat das "Zeichen" einen Namen? In der UnicodeDB hat jedes Zeichen einen Namen,
    mehr dazu hier.

    der Seitenquelltext in der HTML Seite wandelt nix in irgendwelche Unicode Zeichen um soweit ich das sehen kann. Mein altes Office 2000 stellt jedoch nur 5 Quadrate dar, also irgendwelche nicht ASCII konforme Zeichen.

    5 Quadrate deuten darauf hin, dass es 5 Bytes sind. Das ist jedoch die Kodierung, nicht etwa der Codepoint.

    Wie kann es sein, dass ein Symbol eine Zeilenhöhe von mehr als einer Zeile hat?? Bekomm ich irgendwie die Unicode Codes (oder was auch immer es sein mag) dafür heraus?

    Wenn ein Zeichen in Unicode erfasst und registriert ist, hat es einen eindeutigen Codepoint, Name und Beschreibung sowie weitere Angaben. Wie das dann kodiert wird, ist eine andere Sache, das kann z.B. UTF-8 sein, die Kodierung beschreibt, wie der Codepoint eines Zeichens nach Bytes umgesetzt wírd.

    Wenn Du nur die Bytes hast, kannst Du nur raten. Wenn Du jedoch dazu weißt, dass es ein Unicode-Zeichen ist, kriegst Du den Namen und den Codepoint.

    Hotti

    1. @@hotti:

      nuqneH

      5 Quadrate deuten darauf hin, dass es 5 Bytes sind.

      Nein. Sie deuten darauf hin, dass es 5 Zeichen sind.

      Das ist jedoch die Kodierung, nicht etwa der Codepoint.

      Häh??

      Wenn Du nur die Bytes hast, kannst Du nur raten.

      ?? Wenn man nur eine Bytesequenz hat, kann man die Zeichencodierung bestenfalls erraten, ja. Üblicherweise hat man zu der Bytesequenz aber auch die verwendete Zeichencodierung, somit also die Zeichen.

      Qapla'

      --
      Wer möchte nicht lieber durch Glück dümmer als durch Schaden klüger werden? (Salvador Dalí)
      1. hi,

        5 Quadrate deuten darauf hin, dass es 5 Bytes sind.

        Nein. Sie deuten darauf hin, dass es 5 Zeichen sind.

        Der Unterschied zwischen Zeichen und Bytes ist Dir (noch) nicht klar.

        Das ist jedoch die Kodierung, nicht etwa der Codepoint.

        Häh??

        Der Unterschied zwischen Zeichen, Bytes und Codepoint ist Dir nicht klar.

        Frag doch einfach ;)

        Hotti

        1. Tach!

          5 Quadrate deuten darauf hin, dass es 5 Bytes sind.
          Nein. Sie deuten darauf hin, dass es 5 Zeichen sind.
          Der Unterschied zwischen Zeichen und Bytes ist Dir (noch) nicht klar.

          Ohne zu wissen, was der Interpret aus einer Bytesequenz gemacht hat, kann man nicht von der Anzeige des Interpretationsergebnisses auf die ursprünglichen Bytesequenz schließen und damit auch nicht auf die Anzahl der Bytes.

          Der Zeichensatz für HTML ist Unicode. Der OP sagte, er sähe die Zeichen korrekt und im Code keine Ersatzschreibweise wie NCRs oder Entitys. Es ist sehr wahrscheinlich, dass UTF-8 als Kodierung für das Dokument verwendet wurde. Der Browser kann die Zeichen offensichtlich korrekt anzeigen, hat also kein Interpretationsproblem. Als nächsten Schritt wird der OP sie markiert, kopiert und in sein Office-2000-Dokument eingefügt haben. Die Zeichen liegen alle in der BMP, sind also mit der Windows-üblichen 2-Byte-pro-Zeichen-Kodierung (irgendwas UTF-16-kompatibles) verlustfrei kopierbar.

          Die Zeichen wurden also sehr wohl korrekt aus der Bytesequenz gelesen und liegen in der Windows-internen Verarbeitung immer noch als die vorgesehenen Zeichen im Speicher. Die 5 Quadrate zu den 5 Zeichen sind damit eher eine Ersatzdarstellung, weil das Office-2000-System nicht in der Lage ist, entsprechend Glyphen zur Anzeige in der/den Font-Datei(en) zu finden.

          dedlfix.

        2. @@hotti:

          nuqneH

          Der Unterschied zwischen Zeichen und Bytes ist Dir (noch) nicht klar.
          […]
          Der Unterschied zwischen Zeichen, Bytes und Codepoint ist Dir nicht klar.

          *prust*

          Qapla'

          --
          Wer möchte nicht lieber durch Glück dümmer als durch Schaden klüger werden? (Salvador Dalí)
        3. Hi!

          5 Quadrate deuten darauf hin, dass es 5 Bytes sind.

          Nein. Sie deuten darauf hin, dass es 5 Zeichen sind.

          Der Unterschied zwischen Zeichen und Bytes ist Dir (noch) nicht klar.

          Eher Dir nicht, aber das wissen wir ja schon. ;)
          Jedes Zeichen, für das kein Glyph in der verwendeten Schriftart gefunden wird, wird als genau ein Kasten dargestellt. Die Bytes spielen an dieser Stelle überhaupt keine Rolle. Die wurden schon vorher interpretiert, um den Codepoint zu bekommen.

          Viele Grüße,
          Alex

          1. Der Unterschied zwischen Zeichen und Bytes ist Dir (noch) nicht klar.

            Eher Dir nicht,

            Dann haben das hier wohl die Heinzelmännchen programmiert :D

            Hotti

            1. Hi!

              Der Unterschied zwischen Zeichen und Bytes ist Dir (noch) nicht klar.

              Eher Dir nicht,

              Dann haben das hier wohl die Heinzelmännchen programmiert :D

              Da hast Du die Codepoints und die Codierung in UTF-8 drin. So weit, so gut. Wie Du daraus jetzt auf den Unsinn kommst, Kästen für fehlende Zeichen hingen irgendwie mit den Bytes zusammen, ist mir aber ein Rätsel.
              Die verlinkte Seite zeigt ja sogar genau das Gegenteil.

              Beispiel:
              À Codepoint: U+00C0 (UTF-8-Oktetten dezimal: 195 128, hexadezimal: C3 80)
                  LATIN CAPITAL LETTER A WITH GRAVE

              C3 80 sind zwei Bytes, die zusammen einen Codepoint darstellen, und angezeigt wird auch nur ein Glyph (nämlich À). Da das Kästchen, von dem wir bisher geredet haben, auch ein ganz normaler Glyph ist (nämlich der, der als Fallback genommen wird), widerlegt Deine eigene Seite an dieser Stelle direkt Deine vorherige Aussage.

              Viele Grüße,
              Alex

            2. @@hotti:

              nuqneH

              Dann haben das hier wohl die Heinzelmännchen programmiert :D

              Wofür soll die dezimale Darstellung der Oktettwerte gut sein? Nutzlose Spielerei, IMHO.

              Qapla'

              --
              Wer möchte nicht lieber durch Glück dümmer als durch Schaden klüger werden? (Salvador Dalí)
          2. Jedes Zeichen, für das kein Glyph in der verwendeten Schriftart gefunden wird, wird als genau ein Kasten dargestellt.

            Streng korinthenkackerisch können auch mehrere Zeichen ein Graphem bilden, für dass es dann in der Schriftart kein Zeichen gibt. Wobei der Unicode Last Resort Font tatsächlich für nicht selbst stehende, also z.B. kombinierende Zeichen doch ein Ersatz anzeigt. Hm.

            1. Hi!

              Jedes Zeichen, für das kein Glyph in der verwendeten Schriftart gefunden wird, wird als genau ein Kasten dargestellt.

              Streng korinthenkackerisch können auch mehrere Zeichen ein Graphem bilden, für dass es dann in der Schriftart kein Zeichen gibt. Wobei der Unicode Last Resort Font tatsächlich für nicht selbst stehende, also z.B. kombinierende Zeichen doch ein Ersatz anzeigt. Hm.

              Ich denke, das liegt daran, dass ein Font, wenn er keinen Glyphen für ein bestimmtes Zeichen hat, auch die dazugehörigen Regeln zur Kombination nicht enthalten wird. Und die anzeigenden Programme holen sich solche Infos afaik aus dem Font, d.h. die wissen dann auch nicht, dass sich da was kombinieren sollte.

              Ein anderer Fall, wo man zwei Kästen für ein Zeichen bekommen könnte, wären Surrogates, wenn das anzeigende Programm/System Codepoints > 0xFFFF nicht versteht. Dieser Fall sollte aber langsam aussterben.

              Viele Grüße,
              Alex

              1. @@Alex:

                nuqneH

                wenn das anzeigende Programm/System Codepoints > 0xFFFF nicht versteht. Dieser Fall sollte aber langsam aussterben.

                Ja.

                Qapla'

                --
                Wer möchte nicht lieber durch Glück dümmer als durch Schaden klüger werden? (Salvador Dalí)
                1. Tach!

                  wenn das anzeigende Programm/System Codepoints > 0xFFFF nicht versteht. Dieser Fall sollte aber langsam aussterben.
                  Ja.

                  Dessen bin ich mir gar nicht mal so gewiss. Einige Systeme arbeiten intern nicht mit UTF-8 sondern mit Strukturen, die 2 Byte pro Zeichen Platz vorsehen. 4-Byte-Strukturen sind zwar ebenfalls vorhanden, müssen aber explizit verwendet werden. Besonders trifft das Systeme, die bei der Stringverarbeitung mit Altlasten zu tun haben. Bei Windows begegnet einem das bei den Systemfunktionen. Programme, die nicht auf dem .NET-Framework basieren, müssen dies selbst berücksichtigen.

                  dedlfix.

  3. hi,

    Ich bin im Web über einen Textsmiley gestolpert, der mich ziemlich verwirrt hat:
    ⎝⏠⏝⏠⎠

    Du hast mehrere Zeichen. Die Codepoints kannst Du hiermit bestimmen, diese Anwendung habe ich jetzt extra für Dich programmiert ;)

    Hotti

    1. @@hotti:

      nuqneH

      Du hast mehrere Zeichen. Die Codepoints kannst Du hiermit bestimmen

      Nein, kann er nicht. „Fehler: Bitte nur ein Zeichen eingeben.“

      diese Anwendung habe ich jetzt extra für Dich programmiert ;)

      Diese Anwendung erfüllt nicht die geforderten Anforderungen.

      Und warum musst du unbedingt noch Spa^WWerbung für deine Anwendung machen, wo ich doch schon eine Anwendung verlinkt hatte, die die Anforderungen erfüllt?

      Qapla'

      --
      Wer möchte nicht lieber durch Glück dümmer als durch Schaden klüger werden? (Salvador Dalí)
      1. hi,

        Du hast mehrere Zeichen. Die Codepoints kannst Du hiermit bestimmen

        Nein, kann er nicht. „Fehler: Bitte nur ein Zeichen eingeben.“

        Tja, wer die Bedienungsanleitung und die Überschrift
        <h1>Bestimme den Codepoint eines eingegebenen Zeichen<h1>

        nicht lesen kann, der erfreut sich halt der Fehlermeldung ;)

        Hotti