Ich mache eine Webseite, die teilweise auf Chinesisch ist. Ich verwende die UTF-8-Codierung für den gesamten Text. Die Seite enthält einige Teile in chinesischer Sprache, gemischt mit westlichen Buchstaben. Die Schriftart, die ich für westlichen Text verwende, enthält keine chinesischen Schriftzeichen. Daher möchte ich, dass die auf dem Computer des Benutzers verfügbare chinesische Schriftart zum Rendern der chinesischen Schriftzeichen verwendet wird (übrigens sind chinesische Schriftarten sehr groß und nicht zum direkten Herunterladen geeignet ).
Kann ich die chinesischen Schriftzeichen einfach in die Mitte des anderen Textes setzen und erwarten, dass der Browser eine chinesische Schriftart findet, in der sie gerendert werden können (wenn es mir egal ist, in welcher Schriftart sie gerendert wird), oder sollte ich die chinesische Schriftart angeben irgendwie?
Wie soll ich die Schriftart für den chinesischen Text angeben, um sicherzustellen, dass der Browser des Benutzers 你好 und nicht □□ anzeigt?
In meinem Browser (Firefox 56.0) macht das folgende Beispiel den chinesischen Text in beiden <span>
s korrekt (natürlich vorausgesetzt, auf dem Computer ist eine chinesische Schriftart installiert) . Der gesamte chinesische Text wird in derselben Schriftart gerendert, sodass der Browser in gewisser Weise die Schriftart mit den im Text verwendeten Glyphen finden kann, obwohl ich den Namen einer Schriftart mit chinesischen Glyphen nicht angegeben habe ... habe keine Ahnung wie das funktioniert: |
<!doctype html>
<html lang="en-GB">
<head>
<meta charset="utf-8">
<style>
span.serif {
font-family: "serif";
}
span.courier {
font-family: "courier";
}
</style>
</head>
<body>
<span class='serif'>123, wazzup? 一二三,你好嗎?</span><br />
<span class='courier'>123, wazzup? 一二三,你好嗎?</span>
</body>
</html>
Das Obige wird auf meinem Computer folgendermaßen gerendert:
quelle
Antworten:
Wenn die angegebene Schriftart keine Glyphe für ein Zeichen enthält, verwenden Browser normalerweise eine Fallback-Schriftart , um dieses Zeichen zu rendern.
(Browser nicht hat dies zu tun, natürlich, und wie es genau funktioniert vielleicht auch von dem Betriebssystem. Aber es wäre wirklich werden überraschend , wenn es Browser waren die Schriften verwenden Rückfall nicht. Ganz zu schweigen davon, dass es viele Benutzeragenten, die nicht einmal CSS unterstützen, z. B. Textbrowser, Feedreader usw.; für sie konnte man zunächst nicht einmal eine Schriftart angeben.)
Wenn keine geeignete Schriftart gefunden wird, wird für dieses Zeichen ein " Ersatzzeichen " (auch bekannt als "Tofu"; häufig, aber nicht unbedingt etwas wie "□") angezeigt.
Die von CSS definierten Algorithmen:
Algorithmus zur Schriftanpassung
Algorithmus zur Schriftanpassung
Algorithmus zur Schriftanpassung
Algorithmus zur Schriftanpassung
Wenn Sie also keinen Benutzeragenten kennen, der sich nicht darum kümmert, würde ich mir darüber keine Sorgen machen. Verwenden Sie im Idealfall immer das
lang
Attribut (in diesem Zusammenhang kann es Browsern helfen, "sprachgerechte Schriftarten auszuwählen" als Fallbacks).Wenn Sie sich für visuelle Harmonie interessieren, interessieren Sie sich möglicherweise für Schriftfamilien wie Noto oder Ubuntu . Sie versuchen, alle Sprachen / Skripte abzudecken und sie visuell kompatibel zu rendern (z. B. gleiche Höhe usw.).
quelle
你好嗎
. Diese codierten Zeichen zeigen unabhängig von der Codierung jeden Browser an.quelle