Sven Rautenberg: Gibt es eine utf-8 String-Klasse?

Beitrag lesen

Moin!

Du als Besucher dieser Webseite kannst damit gar nichts anfangen, es sei denn, Du überschreibst den von Wikipedia vorgeschlagenen Font mit einem, der eine Darstellung für den Zeichencode kennt.

Nein. Du installierst einfach einen Font, der für dieses Zeichen eine Glyphe kennt, und schon siehst du den Violinschlüssel. Die Darstellung regelt dein Betriebssystem von alleine.

Irgendwie verstehe ich Sven und Dich nicht, wo Ihr das Problem damit habt, einer Funktion eine Zusatzinformation zu entlocken, die sie eigentlich auch zur Verfügung stellen kann, anstatt diese Information versickern zu lassen.

Weil diese Zusatzinformation keinen Nutzen hat. Es ist vollkommen egal, ob ich dem Font-Subsystem sage "schreibe mir Unicode-Zeichen 64 auf den Bildschirm" oder ob ich sage "schreibe Unicode-Zeichen 119070 auf den Bildschirm".

Für den Latin-1-Bereich macht es ja auch Sinn, zusätzlich den "Wunschfont" anzugeben, z.B. "Arial". Ich denke auch, dass es in jeder Sprache soetwas wie "Fonts" gibt, also die optisch unterschiedliche Darstellung der Schriftzeichen.

Allerdings halte ich es für relativ sinnlos, Arabisch oder Chinesisch in "Arial" oder "Times New Roman" darzustellen, um nur mal die zwei Klassiker für "sans serif" und "serif" zu nennen. Denn "Serifen" sind kennzeichnend für die westeuropäischen Schriften - andere Schriftsysteme messen diesen kleinen Strichelchen hingegen wichtige Bedeutung bei, weil man sonst ein ganz anderes Zeichen erhielte.

1  für:  ist reines ASCII (127) und somit UTF-8
                      2  für:  ist UTF-8 2 Bytes  (können die meisten Fonts heute)

Mein Arial-Font hat 1674 Glyphen (und 909 Kerning-Paare). Mit ein und zwei Byte breiten UTF-8-Zeichen können 2174 Zeichen (0x00 - 0x7FF) beschrieben werden - da fehlt also schon was.

Enthalten ist:
Basic Latin        U+0041 - U+007A
Latin-1 Supplement U+00C0 - U+00FF
Latin Extended-A   U+0100 - U+017F
Greek              U+0370 - U+03FF
Cyrillic           U+0400 - U+04FF
Hebrew             U+0590 - U+05FF
Arabic             U+0600 - U+06FF
Arabic Presentation Forms-A  U+FB50 - U+FDFF
Arabic Presentation Forms-B  U+FE70 - U+FEFF

Verdana hingegen hat nur diese Bereiche:
Basic Latin        U+0041 - U+007A
Latin-1 Supplement U+00C0 - U+00FF
Latin Extended-A   U+0100 - U+017F
Greek              U+0370 - U+03FF
Cyrillic           U+0400 - U+04FF

Das ist im Vergleich zum riesigen Bereich U+0000 bis U+07FF nicht mal die Hälfte.

Deine Argumentation "Zwei-Byte-UTF-8 können die meisten Fonts" ist also falsch. Im Gegenteil: Die Codierungslänge in Byte hat nicht die geringste Aussagekraft, die für eine Sprache üblicherweise benötigten Zeichen können durchaus weit verteilt liegen - das Eurozeichen ist beispielsweise U+20AC, kommt in deutschen Texten häufig vor - und würde deine gesamte Überlegung hier:

3  für:  ...                können nur die erweiterten Fonts

ad absurdum führen, denn wenn es etwas gibt, was die meisten westeuropäischen Fonts können, dann ist es das Eurozeichen.

Und die BOM nicht zu vergessen, die ja auch gelegentlich auftaucht.

Diese Einteilung gilt ziemlich genau aus der Sicht des ASCII-Glyphenraumes

In deiner Phantasie vielleicht, in der Realität nicht.

- Sven Rautenberg

--
My sssignature, my preciousssss!
0 45

utf-8 detection

Dieter Raber
  • php
  1. 0
    Siechfred
    1. 0
      Tom
      1. 0
        Siechfred
        • menschelei
      2. 0
        Cybaer
        1. 0

          Gibt es eine utf-8 String-Klasse?

          Tom
          1. 0
            dedlfix
            1. 0
              Tom
              1. 0
                dedlfix
                1. 0
                  Tom
                  1. 0
                    Sven Rautenberg
                    1. 0
                      Tom
                  2. 0
                    dedlfix
                    1. 0
                      Tom
                      1. 0
                        dedlfix
                        1. 0
                          Tom
                          1. 0
                            Sven Rautenberg
                            1. 0
                              Tom
            2. 0
              Cybaer
              • meinung
              1. 0
                dedlfix
                1. 0

                  NORMIERUNG: Sackgasse oder Lösungsansatz?

                  Tom
                  • sonstiges
                  1. 0
                    dedlfix
                  2. 1
                    Sven Rautenberg
                    1. 0
                      Cybaer
                    2. 0

                      Wollte nicht kneifen, aber 1&1 hat "Späße" gemacht

                      Tom
                      1. 0
                        Sven Rautenberg
            3. 0
              Cybaer
              • meinung
          2. 0
            Cybaer
      3. 0
        Sven Rautenberg
        1. 0

          utf-8 Byteanzahl und Wahl des Zeichensatzes

          Tom
          1. 0
            Sven Rautenberg
            1. 0
              Tom
              1. 0
                Sven Rautenberg
                1. 0

                  Übersetzung Code -> Glyphe

                  Tom
                  1. 0
                    Sven Rautenberg
                  2. 0
                    Cybaer
                    1. 0
                      dedlfix
                      1. 0
                        Cybaer
                        • menschelei
  2. 0
    Christian Seiler
    1. 0
      Dieter Raber
  3. 0
    Tom
    1. 0
      dedlfix
  4. 0

    utf-8 detection, danke und Zusatzfrage

    Dieter Raber
    1. 0
      Tom
      1. 0
        Dieter Raber