Sollte ich beim Erstellen einer Website die Kodierung UTF-8 oder GB2312 verwenden?

Sollte ich beim Erstellen einer Website die Kodierung UTF-8 oder GB2312 verwenden?

Beim Öffnen ausländischer Websites werden häufig verstümmelte Zeichen angezeigt, und beim Öffnen vieler nicht-englischer ausländischer Websites werden ausschließlich die Zeichen 口口口口口 angezeigt.

Das WordPress-Programm verwendet UTF-8 und viele CMS verwenden GB2312.

● Warum gibt es so viele Codes?

● Was ist der Unterschied zwischen UTF-8 und GB2312?

● Ist es beim Erstellen von Websites im Land besser, das Kodierungsformat UTF-8 oder das Kodierungsformat GB2312 zu verwenden?

1. Der Ursprung verschiedener Codes

Vielleicht waren viele Studenten immer verwirrt über die verschiedenen Zeichenkodierungsmethoden und haben keine Ahnung, warum es so viele Kodierungen gibt.

ANSI-Kodierung

Tatsächlich gab es vor langer Zeit eine Gruppe von Leuten, die beschlossen, 8 Transistoren zu verwenden, die geöffnet und geschlossen werden konnten, um sie in verschiedene Zustände zu kombinieren und so alles auf der Welt darzustellen. Sie sahen, dass 8 Schalterzustände gut waren, also nannten sie dies ein „Byte“.

Computer wurden zunächst nur in den USA eingesetzt. Ein 8-Bit-Byte kann zu insgesamt 256 (2 hoch 8) verschiedenen Zuständen kombiniert werden.

Sie haben den 32 Zuständen, die bei 0 beginnen, spezielle Verwendungszwecke zugewiesen. Sobald das Terminal oder der Drucker auf die Übertragung dieser vereinbarten Bytes stößt, führt es einige vereinbarte Aktionen aus.

Bei 00×10 wird die Zeile vom Terminal umbrochen. Bei 0×07 wird das Terminal einen Piepton abgeben. Bei 0×1b beispielsweise werden hervorgehobene Wörter gedruckt oder Buchstaben werden vom Terminal farbig angezeigt. Sie hielten das für eine gute Idee und nannten die Byte-Zustände unter 0×20 „Steuercodes“.

Anschließend stellten sie alle Leerzeichen, Satzzeichen, Zahlen, Groß- und Kleinbuchstaben mit aufeinanderfolgenden Byte-Zuständen bis zur Zahl 127 dar, sodass Computer unterschiedliche Bytes zum Speichern englischen Textes verwenden konnten. Alle waren damit zufrieden und so nannten sie dieses Schema ANSI-„Ascii“-Kodierung (American Standard Code for Information Interchange). Zu dieser Zeit verwendeten alle Computer der Welt dasselbe ASCII-Schema zum Speichern englischen Textes.

Erweiterte ANSI-Kodierung

Später, genau wie beim Bau des Turms von Babel, begannen die Menschen auf der ganzen Welt, Computer zu verwenden, aber in vielen Ländern wurde kein Englisch verwendet und viele ihrer Buchstaben waren nicht in ASCII. Um ihren Text auf Computern zu speichern, beschlossen sie, den leeren Raum nach der Nummer 127 zu verwenden, um diese neuen Buchstaben und Symbole darzustellen, und fügten außerdem viele Formen wie horizontale Linien, vertikale Linien und Kreuze hinzu, die beim Zeichnen von Tabellen benötigt wurden, und die Seriennummer wurde auf den letzten Zustand 255 erhöht. Der Zeichensatz von 128 bis 255 wird als „erweiterter Zeichensatz“ bezeichnet. Von da an standen den gierigen Menschen keine neuen Staaten mehr zur Verfügung, und die Vereinigten Staaten rechneten vermutlich auch nicht damit, dass andere Länder Computer benötigen würden.

GB2312-Kodierung

Als die Menschen in China Computer bekamen, gab es keine verfügbaren Byte-Zustände zur Darstellung chinesischer Schriftzeichen. Ganz zu schweigen davon, dass es mehr als 6.000 häufig verwendete chinesische Schriftzeichen gab, die gespeichert werden mussten. Die Chinesen haben diese seltsamen Symbole nach der Zahl 127 ohne zu zögern einfach gestrichen.

Die Regel lautet: Ein Zeichen kleiner als 127 hat dieselbe Bedeutung wie zuvor, aber wenn zwei Zeichen größer als 127 miteinander verbunden werden, stellen sie ein chinesisches Zeichen dar. Das erste Byte (er nennt es das High-Byte) wird von 0xA1 bis 0xF7 verwendet, und das zweite Byte (das Low-Byte) wird von 0xA1 bis 0xFE verwendet. Auf diese Weise können wir etwa 7.000 vereinfachte chinesische Zeichen kombinieren.

In diese Codes haben wir auch mathematische Symbole, römische und griechische Buchstaben sowie japanische Kana aufgenommen. Sogar die Zahlen, Satzzeichen und Buchstaben, die bereits in ASCII vorhanden waren, wurden alle als Zwei-Byte-Zeichen neu kodiert. Diese werden allgemein als „Vollbreiten“-Zeichen bezeichnet, und diejenigen, die ursprünglich kleiner als 127 waren, werden als „Halbbreiten“-Zeichen bezeichnet. Daher wird dieses chinesische Schriftschema „GB2312“ genannt. GB2312 ist eine chinesische Erweiterung von ASCII.

GBK- und GB18030-Kodierung

In China gibt es jedoch zu viele chinesische Schriftzeichen und wir stellten bald fest, dass viele Personennamen hier nicht eingegeben werden können. Dies gilt insbesondere für die Namen einiger chinesischer Politiker. Wenn diese nicht eingegeben werden können, sind große Probleme damit verbunden. Daher müssen wir weiterhin die Codepositionen herausfinden, die in GB2312 nicht verwendet werden, und diese ohne zu zögern verwenden.

Später reichte dies immer noch nicht aus, sodass die Anforderung, dass das niedrigste Byte der interne Code nach der Nummer 127 sein muss, nicht mehr erforderlich war. Solange das erste Byte größer als 127 ist, wird es als der Anfang eines chinesischen Zeichens angezeigt, unabhängig davon, ob das Folgende Inhalt im erweiterten Zeichensatz ist. Das daraus resultierende erweiterte Kodierungsschema wird als GBK-Standard bezeichnet, der den gesamten Inhalt von GB2312 umfasst und fast 20.000 neue chinesische Schriftzeichen (einschließlich traditioneller chinesischer Schriftzeichen) und Symbole hinzufügt.

Später wollten auch ethnische Minderheiten Computer verwenden, also haben wir es erneut erweitert und Tausende neuer Zeichen für ethnische Minderheiten hinzugefügt, und GBK wurde auf GB18030 erweitert. Von nun an kann die Kultur der chinesischen Nation im Computerzeitalter weitergegeben werden.

Das größte Merkmal dieses Standards besteht darin, dass zwei Byte große chinesische Zeichen und ein Byte große englische Zeichen im selben Kodierungsschema koexistieren. Um die chinesische Verarbeitung zu unterstützen, müssen die von ihnen geschriebenen Programme daher auf den Wert jedes Bytes in der Zeichenfolge achten. Wenn dieser Wert größer als 127 ist, wird davon ausgegangen, dass ein Zeichen im Doppelbyte-Zeichensatz vorkommt.

Damals mussten alle Programmierer, die eine Programmierausbildung absolviert hatten, das folgende Mantra täglich hunderte Male rezitieren:

„Ein chinesisches Schriftzeichen zählt als zwei englische Schriftzeichen! Ein chinesisches Schriftzeichen zählt als zwei englische Schriftzeichen …“

UNICODE-Kodierung

Denn damals hatte jedes Land wie China seinen eigenen Kodierungsstandard, sodass niemand die Kodierung des anderen verstand und niemand die Kodierung des anderen unterstützte. Sogar das Festland und Taiwan, die nur 150 Seemeilen voneinander entfernt waren und dieselbe Sprache verwendeten, übernahmen unterschiedliche Kodierungsschemata:

Wenn die Chinesen damals wollten, dass ihre Computer chinesische Schriftzeichen anzeigen konnten, mussten sie ein „chinesisches Schriftsystem“ installieren. Wird speziell verwendet, um Anzeige- und Eingabeprobleme bei chinesischen Schriftzeichen zu beheben.

Das von einem Taiwaner geschriebene Programm muss jedoch mit einem anderen „Yitian Chinese Character System“ installiert werden, das die BIG5-Kodierung unterstützt, bevor es verwendet werden kann. Wenn das falsche Zeichensystem installiert ist, wird die Anzeige durcheinander gebracht! Was soll ich dagegen tun? Darüber hinaus gibt es arme Menschen auf der Welt, die derzeit keinen Computer benutzen können. Was soll mit ihren Schriften geschehen?

In diesem Moment erschien ein Engel zur rechten Zeit – eine internationale Organisation namens ISO (Internationale Organisation für Normung) beschloss, dieses Problem in Angriff zu nehmen. Die Methode, die sie dabei anwandten, war ganz einfach: Alle regionalen Kodierungsschemata mussten abgeschafft werden, und es musste ein neues Schema geschaffen werden, das alle Kulturen, Buchstaben und Symbole der Erde einschließt! Sie planten, es UCS zu nennen, allgemein bekannt als UNICODE. Universeller, mit mehreren Oktetten codierter Zeichensatz

Die Ära, in der ein chinesisches Zeichen in UNICODE als zwei englische Zeichen gezählt wurde, ist fast vorbei.

Egal, ob es sich um englische Buchstaben halber Breite oder chinesische Schriftzeichen voller Breite handelt, sie sind alle als „ein Zeichen“ vereint! Gleichzeitig sind sie alle vereinheitlichte "zwei Bytes"

UTF-8 und UTF-16

Mit der Einführung von UNICODE ging auch der Aufstieg von Computernetzwerken einher. Auch die Frage, wie UNICODE im Netzwerk übertragen werden sollte, musste berücksichtigt werden. Daher erschienen viele UTF-Standards (UCS Transfer Format) für die Übertragung. Wie der Name schon sagt, überträgt UTF8 Daten jeweils mit 8 Bit und UTF16 jeweils mit 16 Bit. Für eine zuverlässige Übertragung gibt es jedoch keine direkte Entsprechung von UNICODE zu UTF, sondern es sind einige Algorithmen und Regeln für die Konvertierung erforderlich.

Die Zukunft von UCS-4

Wie bereits erwähnt, verwendet UNICODE zwei Bytes zur Darstellung eines Zeichens, wodurch insgesamt 65535 verschiedene Zeichen kombiniert werden können, was wahrscheinlich die Symbole aller Kulturen der Welt abdeckt. Wenn das immer noch nicht reicht, ist das auch nicht schlimm. Die ISO hat das UCS-4-Schema vorbereitet. Einfach ausgedrückt werden vier Bytes verwendet, um ein Zeichen darzustellen. Auf diese Weise können wir 2,1 Milliarden verschiedene Zeichen kombinieren (das höchste Bit hat andere Verwendungszwecke). Dies kann wahrscheinlich bis zu dem Tag verwendet werden, an dem die Galaktische Föderation in China gegründet wird!

2. Warum werden beim Öffnen mancher Websites manchmal verstümmelte Zeichen angezeigt?

Wenn Browser (wie etwa Internet Explorer usw.) HTML-Webseiten interpretieren, entstehen unleserliche Zeichen auf Webseiten.

Wenn im Code der Website-Seite die falsche Sprache geschrieben ist (was relativ selten vorkommt), sieht dies folgendermaßen aus:

<HTML>

<KOPF>

<META CONTENT="text/html; charset=ISO-8859-1"></HEAD>……

</HTML>

Wenn der Browser diese Seite anzeigt, werden unleserliche Zeichen angezeigt. Weil der Browser die Sprache dieser Seite als „europäische Sprache“ identifiziert.

Die Lösung besteht darin, die Sprache „ISO-8859-1“ in GB2312 zu ändern, bzw. in BIG5, wenn es sich um eine traditionelle chinesische Webseite handelt.

Eine weitere Möglichkeit besteht darin, dass auf der Webseite keine Angabe zur verwendeten Sprache gemacht wird.

<META CONTENT="text/html; charset=XXXXX">, diese Zeile.

Und die Standardsprache Ihres Computers ist nicht diese. Dieses Problem tritt beispielsweise häufig auf, wenn wir einige japanische Websites besuchen. Dies liegt hauptsächlich daran, dass die Programmierer die Website für Einheimische entwickelt haben. Da die Landessprache die Standardeinstellung ist, gibt es keinen verstümmelten Code. Aber Sie sind ein Außenseiter und Ihr Betriebssystem selbst ist standardmäßig nicht in der Landessprache. Sie müssen die Sprache also manuell ändern.

Was die Situation betrifft, in der "Mund, Mund, Mund, Mund" auftritt

Dies liegt daran, dass die Website nicht die UTF-8-Kodierung verwendet, sondern eine lokale Kodierung, beispielsweise die mongolische oder arabische Kodierung. Ihr Computer verfügt nicht über diese Kodierung und kann sie daher nicht erkennen.

Die Lösung besteht darin, im Voraus ein mehrsprachiges Supportpaket für den Browser zu installieren (beispielsweise müssen Sie bei der Installation von IE ein mehrsprachiges Supportpaket installieren). Auf diese Weise können Sie, wenn beim Durchsuchen der Webseite verstümmelte Zeichen auftreten, in der Menüleiste des Browsers „Ansicht“ / „Kodierung“ / „Automatische Auswahl“ / Mongolisch auswählen. Wenn es sich um traditionelles Chinesisch handelt, wählen Sie „Ansicht“ / „Kodierung“ / „Automatische Auswahl“ / Arabisch usw. für andere Sprachen. Wählen Sie das entsprechende Sprachsystem aus. Dadurch können die verstümmelten Zeichen auf der Webseite beseitigt werden.

3. Welche Codierung eignet sich derzeit besser für die Entwicklung von Websites?

Unser allgemeines Verständnis ist:

UTF-8 ist ein universeller Code, der die chinesische Kodierung perfekt unterstützt. Wenn die von uns erstellte Website von ausländischen Benutzern normal aufgerufen werden kann, ist es am besten, UTF-8 zu verwenden.

GB2312 ist eine chinesische Kodierung, die hauptsächlich für inländische Benutzer bestimmt ist. Wenn ausländische Benutzer eine in GB2312 kodierte Website besuchen, werden verstümmelte Zeichen angezeigt.

Internetnutzer sind im Allgemeinen der Meinung, dass UTF-8 viel häufiger verwendet wird als GB2312, und alle sind für die Verwendung von UTF-8.

Aus einer Untersuchung ausländischer Websites geht außerdem Folgendes hervor:

Aus dieser Abbildung können wir erkennen, dass die Verwendung der GB2312-Kodierung im Zeitraum von 2001 bis 2008 nicht weit verbreitet war, aber dennoch stetig zunahm; die blaue Linie zeigt, dass immer mehr Websites UTF-8 verwenden.

Ich habe mehrere große nationale Portale ausgewählt, um zu sehen, welches Kodierungsformat sie verwenden:

Einige Studenten fragen sich vielleicht, warum mehrere inländische Websites GB2312 häufiger verwenden.

Über diese Frage habe ich, glaube ich, auch schon nachgedacht. Es sollte 3 Gründe geben:

1. Diese inländischen Websites haben eine lange Geschichte und verwendeten ursprünglich die GB2312-Kodierung. Jetzt ist die Konvertierung auf UTF-8 (frühere Webseiten) zu schwierig und riskant.

2. UTF-8-codierte Dateien benötigen mehr Speicherplatz als GB2312-Dateien. Obwohl dies in der aktuellen Hardwareumgebung ignoriert werden kann, generieren diese Portal-Websites grundsätzlich statische Seiten für alle Seiten, um die Serverlast zu verringern. UTF-8-gespeicherte Dateien sind relativ groß. Die Menge der täglich für Websites auf Portalebene generierten Dateien ist immer noch sehr groß und die Speicherkosten steigen entsprechend.

3. Da die Menge der Netzwerkübertragungsdaten bei der UTF-8-Kodierung größer ist als bei der GB2312-Dekodierung, ist sie nicht für Websites auf Portalebene geeignet. Dadurch wird die Bandbreite unsichtbar erhöht und die Verwendung von GB2312 ist zweifellos die beste Optimierung für den Netzwerkverkehr.

Daher wird beim Erstellen einer neuen Website empfohlen, UTF-8 zu wählen. Da die oben genannten Gründe nicht vorliegen, ist Kompatibilität die beste Strategie.

<<:  Lösen Sie schnell das Problem der weißen Lücke (Flash-Bildschirm), wenn CSS @keyframes verwendet, um Bilder für den ersten Zyklus zu laden

>>:  Standardmäßige Stilanordnung von HTML4.0-Elementen

Artikel empfehlen

Implementierungscode für unendliches Scrollen mit n Containerelementen

Szenario So rendern Sie Listen mit bis zu 10.000 ...

Lösung für den ineffektiven Rand von in HTML verschachtelten Divs

Hier ist eine Lösung für das Problem, dass der Ra...

WebWorker kapselt JavaScript-Sandbox-Details

Inhaltsverzeichnis 1. Szenario 2. Implementieren ...

Die Hook-Funktion von Vue-Router implementiert Routing Guard

Inhaltsverzeichnis Überblick Globale Hook-Funktio...

So installieren und konfigurieren Sie Redis in CentOS7

Einführung Es ist nicht nötig, Redis im Detail vo...

So entfernen Sie die Trennlinie einer Webseitentabelle

<br />So entfernen Sie die Trennlinien einer...

Detaillierte Analyse des Linux-Kernel-Makros container_of

1. Wie oben erwähnt Ich habe dieses Makro gesehen...

Das Raster ist Ihr Layoutplan für die Seite

<br /> Englisches Original: http://desktoppu...

Referenzschreiben im JS- und CSS-Stil

CSS: 1. <link type="text/css" href=&q...

So fügen Sie einem Alpine-Image einen Ansible-Dienst hinzu

Verwenden Sie apk add ansible, um den Ansible-Die...

Tipps zur Kurzschrift in JavaScript

Inhaltsverzeichnis 1. Arrays zusammenführen 2. Ar...

CSS-Leistungsoptimierung - detaillierte Erklärung der Will-Change-Verwendung

will-change teilt dem Browser mit, welche Änderun...