Moin!
wie bekomme ich diese Fonts (im Gegensatz zu den iso8859 fonts) in HTML angesprochen? Viele Symbole lassen sich nämlich nicht ansprechen.
Hier landest du mitten in dem Konglomerat aus Zeichensatz, Zeichencodierung, Schriftarten etc.
ich vermute mit
<meta http-equiv="content-type" content="text/html; charset=UTF-8">
sollte es gehen.
Deine Vermutung ist nicht so ganz falsch, aber auch nicht so ganz richtig.
Mit der Angabe "charset" definierst du - im Gegensatz zu der tatsächlichen Bedeutung dieses Wortes - nicht den Zeichensatz, sondern das verwendete Zeichencodierungsverfahren. Der Zeichensatz (also die Menge aller möglichen verwendbaren Zeichen) ist in HTML nämlich immer Unicode. Nur kann man unter Umständen nicht alle Unicodezeichen gleichzeitig mit nur einem einzigen Byte-Zeichen erreichen.
Aus diesem Grunde hat man sich diverse Zeichencodierungen einfallen lassen, die jeweils auf die Erfordernisse einer bestimmten Sprache oder einer Sprachgruppe abgestimmt sind. ISO-8859-1 beispielsweise ist für Westeuropa vorgesehen, weil man damit eigentlich alle Schriftzeichen inklusiver aller möglichen Zeichen mit diakritischen Zeichen (Akzente, Umlaute etc.) direkt mit einem Byte-Zeichen adressieren kann, die in Westeuropa so verwendet werden.
UTF-8 ist ein Verfahren, welches sämtliche definierten Unicode-Zeichen adressierbar macht. Da Unicode aber aus mehr als 256 verschiedenen Zeichen besteht, braucht man auch mehr als 256 Codierungen für die Zeichen. Deshalb verwendet UTF-8 1 bis 6 Byte lange Gruppen von 8-Bit-Zeichen, die speziell codiert sind, damit man daraus den Unicode-Wert zurückermitteln kann.
Wie das konkret abläuft, mußt du dir eigentlich aber garnicht genau angucken. Verwende einfach einen Unicode-fähigen Texteditor, und schon hast du das Problem gelöst. Wenn du keinen Unicode-fähigen Texteditor hast und dir eine UTF-8-codierte HTML-Datei ansiehst, wird dir vielleicht zuerst gar nichts auffallen. Denn alle Zeichen mit Unicode-Werten kleiner 128 sind absolut identisch. Lediglich die deutschen Umlaute sehen etwas komisch aus: Statt eines Zeichens stehen dort zwei Zeichen, das erste ist dabei immer ein großes A mit Tilde.
Alternativ zu dieser UTF-8-Codierung kannst du natürlich auch alle Zeichen, die du gerne darstellen willst, als Zahlen-Entity eingeben: 〹 beispielsweise gibt das Unicode-Zeichen 12345 (dezimale Zahl) aus (was auch immer das für eines ist). So eine Vorgehensweise funktioniert vollkommen unabhängig von irgendeiner charset-Angabe immer (denn HTML hat als Zeichensatz Unicode, also muß der Browser alle Unicode-Zeichen verstehen - von "ausgeben" ist hierbei aber noch nicht die Rede, das kommt gleich).
Egal, wie du deine HTML-Datei nun schreibst, ob mit echter UTF-8-Codierung oder mit Entities: Wichtig ist natürlich die Ausgabe.
Und hier kommen jetzt die Schriftarten (oder Fonts) ins Spiel. Es ist ziemlich aufwendig, eine Schriftart nicht nur für unsere 256 (grob gerundet) deutschen bzw. europäischen Schriftzeichen zusammenzubasteln, sondern zusätzlich noch sämtliche anderen Alphabete dieser Welt hineinzunehmen. So eine Schriftart wäre sicherlich mehrere Megabyte groß, denn Unicode selbst erlaubt Zeichen bis zum Code 0x1FFFFF, also gut zwei Millionen Zeichen - wobei längst nicht alle Codes auch ein definiertes Zeichen enthalten, aber auch hunderttausend Zeichen wäre schon ziemlich viel.
Deshalb haben übliche Schriftarten wahrscheinlich niemals für alle existierenden Unicode-Zeichen eine Zeichendefinition - aber nur mit so einer Definition kann der Computer aus dem Zeichencode ein sichtbares Zeichen machen.
Wenn du jetzt für dein Linux Unicode-Schriftarten hast, die für die relevanten Unicode-Zeichen Definitionen besitzen - toll. Dann kannst du wenigstens sehen, was du geschrieben hast. Alle anderen Benutzer müssen auf ihren Rechnern aber zwingend auch so eine Schriftart installieren, ansonsten sehen sie nur quadratische Kästchen oder Fragezeichen. Dies kannst du auch nicht durch geeignete Font-Auswahl, egal ob per <font> oder CSS, beeinflussen. Das simpelste wäre, auf deiner Seite einen Texthinweis zu platzieren, der den Besucher informiert, welches Alphabet du auf deiner Seite benutzt, falls er einige Zeichen nicht lesen kann. Dann kann er versuchen, für sein System einen geeigneten Font zu besorgen.
allerdings bekomme ich die gesuchten Symbole nicht dargestellt
Wie oben erwähnt: Wenn du als charset UTF-8 angibst, muß deine Datei auch so codiert sein. Als Alternative solltest du zum Testen erst mal die Entity-Version verwenden, damit kannst du unabhängig von der Codierung testen, ob dein Browser das Zeichen überhaupt anzeigen kann.
- Sven Rautenberg