it-swarm.com.de

Wie kann man sicherstellen, dass chinesischer Text auf der Webseite dargestellt wird?

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 chinesische Schrift, die auf dem Computer des Benutzers verfügbar ist, zum Rendern der chinesischen Schriftzeichen verwendet wird ).

Kann ich die chinesischen Schriftzeichen einfach in die Mitte des anderen Texts setzen und erwarten, dass der Browser eine chinesische Schrift findet, in der sie gerendert werden (wenn es mir egal ist, in welcher Schrift sie gerendert wird), oder sollte ich die chinesische Schrift in angeben Irgendwie?

Wie soll ich die Schriftart für den chinesischen Text festlegen, um sicherzustellen, dass der Browser des Benutzers 你好 und nicht □□ anzeigt?


In meinem Browser (Firefox 56.0) wird im folgenden Beispiel der chinesische Text in beiden <span> korrekt wiedergegeben (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 ... hab keine ahnung wie das geht: |

<!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 so gerendert:

enter image description here

7
PetaspeedBeaver

Wenn die angegebene Schriftart keine Glyphe für ein Zeichen enthält, verwenden Browser normalerweise eine Ersatzschrift , um dieses Zeichen zu rendern.

(Browser haben das natürlich nicht und wie es genau funktioniert, kann auch vom Betriebssystem abhängen. Aber es wäre wirklich überraschend, wenn Es gab Browser, die keine Fallback-Schriftarten verwenden, und es gibt viele Benutzerprogramme, die nicht einmal CSS unterstützen, z. B. Textbrowser, Feedreader usw. Für diese konnten Sie nicht einmal eine Schriftart angeben beginnen mit.)

Wenn keine passende Schriftart gefunden wird, wird ein " Ersatzzeichen " (auch bekannt als "Tofu"; häufig aber nicht unbedingt so etwas wie "□") angezeigt Charakter.

Die von CSS definierten Algorithmen:

Wenn Sie also keinen User-Agent kennen, der nicht damit umgeht, würde ich mir keine Sorgen machen. Verwenden Sie jedoch im Idealfall immer das lang -Attribut (in diesem Zusammenhang kann es den Browsern helfen, "sprachangepasste Schriftarten auszuwählen" als Fallbacks).

Wenn Sie Wert auf visuelle Harmonie legen, interessieren Sie sich möglicherweise für Schriftfamilien wie Noto oder bunt . Sie versuchen, alle Sprachen/Skripte abzudecken und sie auf eine visuell kompatible Weise wiederzugeben (z. B. dieselbe Höhe usw.).

3
unor
  • Erstellen Sie einen Block für chinesischen Text mit den Attributen html, z. B. p oder em oder strong oder span oder etwas Ähnliches. Wenden Sie das Element lang an, um die Sprache des erstellten Blocks anzugeben. Info W3 über ISO-Sprachcodes. In Ihrem Fall ist es lang = zh. Beachten Sie, dass Sie eine Teilmenge für die chinesische Sprache angeben können, z. B. für Chinesisch (vereinfacht) = zh-Hans , für Chinesisch (traditionell) = zh-Hant . Sie können auch das Land für Ihre chinesischen Wörter angeben/lokalisieren - info UN about Sprachgebietsinformationen. Zum Beispiel Chinesisch für Singapur lang = zh-SG.
  • Wenden Sie HTML-Entity-Encoder/-Decoder für Ihre chinesischen Wörter an. Dein erstes chinesisches Wort wird als &#x4F60;&#x597D;&#x55CE; codiert. Diese codierten Zeichen zeigen jeden Browser an, unabhängig von der Codierung.
0
nikant25