Detaillierte Erläuterung verschiedener PHP-Codierungssätze und der Umstände, unter denen sie verwendet werden sollten

高洛峰
Freigeben: 2023-03-01 13:22:02
Original
990 Leute haben es durchsucht

Ein Zeichensatz ist eine Sammlung mehrerer Zeichen. Es gibt viele Arten von Zeichensätzen. Jeder Zeichensatz enthält eine unterschiedliche Anzahl von Zeichensatznamen: ASCII-Zeichensatz, GB2312-Zeichensatz, GB 18030 Zeichensatz, Unicode-Zeichensatz usw. Damit ein Computer Text in verschiedenen Zeichensätzen genau verarbeiten kann, ist eine Zeichenkodierung erforderlich, damit der Computer verschiedene Texte erkennen und speichern kann.

Chinesisch hat eine große Anzahl von Zeichen und ist auch in zwei Zeichen mit unterschiedlichen Schreibregeln unterteilt: Vereinfachtes Chinesisch und traditionelles Chinesisch. Computer wurden ursprünglich auf der Grundlage englischer Einzelbyte-Zeichen entwickelt ist eine technische Grundlage für den Informationsaustausch auf Chinesisch. In diesem Artikel werden mehrere typische Zeichensätze in chronologischer Reihenfolge der Zeichensätze erläutert, mehrere repräsentative chinesische Zeichensätze ausgewählt und der historische Ursprung, die Merkmale und die technischen Merkmale untersucht.

ASCII-Zeichensatz

1. Herkunft des Namens

ASCII (American Standard Code for Information Interchange, American Standard Code for Information Interchange) ist ein Satz, der auf dem römischen basiert Alphabet Computer-Kodierungssystem.

2. Funktionen

Es wird hauptsächlich zur Anzeige von modernem Englisch und anderen westeuropäischen Sprachen verwendet. Es ist heute das gebräuchlichste Einzelbyte-Kodierungssystem und entspricht dem internationalen Standard ISO 646.

3. Enthält Inhalt

Steuerzeichen: Eingabetaste, Rücktaste, Zeilenvorschubtaste usw.

Anzeigbare Zeichen: Englische Groß- und Kleinbuchstaben, arabische Ziffern und westliche Symbole

4. Technische Merkmale

7 Bits repräsentieren ein Zeichen, insgesamt 128 Zeichen

5. ASCII erweiterter Zeichensatz

Der 7-Bit-codierte Zeichensatz kann nur 128 Zeichen unterstützen, ASCII wurde erweitert Der Zeichensatz verwendet 8 Bits, um ein Zeichen darzustellen, insgesamt 256 Zeichen.

Zu den durch den erweiterten ASCII-Zeichensatz erweiterten Symbolen gehören Tabellensymbole, Berechnungssymbole, griechische Buchstaben und spezielle lateinische Symbole.

GB2312-Zeichensatz

1. Ursprung des Namens

GB2312 ist auch als GB2312-80-Zeichensatz bekannt. Der vollständige Name lautet zur Information „Chinesischer Zeichenkodierungszeichensatz“. Austausch·Grundsatz“, herausgegeben von der ehemaligen China State Administration of Standards und umgesetzt am 1. Mai 1981.

2. Funktionen

GB2312 ist Chinas nationaler Standard-Zeichensatz für vereinfachtes Chinesisch. Die darin enthaltenen chinesischen Schriftzeichen decken 99,75 % der Nutzungshäufigkeit ab und erfüllen im Wesentlichen die Computerverarbeitungsanforderungen chinesischer Schriftzeichen. Es ist auf dem chinesischen Festland und in Singapur weit verbreitet.

3. Enthaltener Inhalt

GB2312 umfasst vereinfachte chinesische Zeichen und allgemeine Symbole, Seriennummern, Zahlen, lateinische Buchstaben, japanische Kana, griechische Buchstaben, russische Buchstaben, chinesische Pinyin-Symbole und chinesische phonetische Buchstaben , insgesamt 7445 grafische Zeichen. Es umfasst 6763 chinesische Schriftzeichen, darunter 3755 chinesische Schriftzeichen der ersten Stufe und 3008 chinesische Schriftzeichen der zweiten Stufe, darunter lateinische Buchstaben, griechische Buchstaben, japanische Hiragana- und Katakana-Buchstaben sowie russische kyrillische Buchstaben.

4. Technische Merkmale

(1) Partitionsdarstellung:

In GB2312 sind die gesammelten chinesischen Schriftzeichen „partitioniert“ und jede Zone enthält 94 chinesische Schriftzeichen/Symbole. Diese Darstellung wird auch Standortcode genannt.

Die in jedem Bereich enthaltenen Zeichen sind wie folgt: Bereiche 01–09 sind spezielle Symbole; Bereiche 16–55 sind chinesische Schriftzeichen der ersten Ebene, sortiert nach Pinyin; sortiert nach Radikalen/Strichen; 10 Bereiche -15 und 88-94 sind nicht kodiert.

(2) Doppelbyte-Darstellung

Das erste der beiden Bytes ist das erste Byte und das folgende Byte ist das zweite Byte. Es ist üblich, das erste Byte als „High-Byte“ und das zweite Byte als „Low-Byte“ zu bezeichnen.

Das „High-Byte“ verwendet 0xA1-0xF7 (addieren Sie 0xA0 zur Vorwahl des Bereichs 01-87), und das „Low-Byte“ verwendet 0xA1-0xFE (addieren Sie 01-94 zu 0xA0).

5. Codierungsbeispiel

Nehmen Sie als Beispiel das erste chinesische Zeichen „ah“ im GB2312-Zeichensatz. Seine Vorwahl ist 16 und die Bitnummer ist 01. Die Vorwahl ist 1601 In den meisten Fällen lautet die Vorwahl 1601. Fügen Sie im Computerprogramm 0xA0 zum High-Byte bzw. Low-Byte hinzu, um den chinesischen Zeichenverarbeitungscode 0xB0A1 des Programms zu erhalten. Die Berechnungsformel lautet: 0xB0=0xA0+16, 0xA1=0xA0+1.

BIG5-Zeichensatz

1. Ursprung des Namens

Auch bekannt als Big Five oder Big Five, wurde es 1984 von der Taiwan Information Industry Promotion Association und five gegründet Die Softwareunternehmen Acer, MiTAC, Jiajia, Zero One und FIC wurden gegründet, daher nennt man es die Big Five.

Der Big5-Code wurde erstellt, weil verschiedene Hersteller in Taiwan zu dieser Zeit unterschiedliche Codes auf den Markt brachten, wie z. B. Yitian-Code, IBM PS55, Wangan-Code usw., die andererseits nicht kompatibel waren Die taiwanesische Regierung hatte noch keinen offiziellen Code für die Kodierung chinesischer Schriftzeichen eingeführt, und die Kodierung GB2312 auf dem chinesischen Festland umfasst keine traditionellen chinesischen Schriftzeichen.

2. Funktionen

Der Big5-Zeichensatz enthält insgesamt 13.053 chinesische Zeichen. Dieser Zeichensatz wird in Taiwan, China, verwendet. Das Faszinierende ist, dass dieser Zeichensatz wiederholt die gleichen zwei Zeichen enthält: „兀“ (0xA461 und 0xC94A), „?亍?0xDCD1 und 0xDDFC).

3. Zeichenkodierungsmethode

Big5-Code verwendet eine Doppelbyte-Speichermethode, bei der zwei Bytes zum Codieren eines Wortes verwendet werden. Das erste Byte wird als „High-Byte“ und das zweite Byte als „Low-Byte“ bezeichnet. Der Kodierungsbereich des höherwertigen Bytes beträgt 0xA1-0xF9, und der Kodierungsbereich des niederwertigen Bytes beträgt 0x40-0x7E und 0xA1-0xFE.

Die Zeichentypen, die jedem Codierungsbereich entsprechen, sind wie folgt: 0xA140-0xA3BF sind Satzzeichen, griechische Buchstaben und Sonderzeichen. Darüber hinaus speichert 0xA259-0xA261 die Wörter für die zweisilbige Gewichts- und Maßeinheit: ???????杝??;0xA440-0xC67E sind häufig verwendete chinesische Schriftzeichen, zuerst nach Strichen und dann nach Radikalen sortiert; 0xC940-0xF9D5 sind die zweithäufigsten verwendeten chinesischen Schriftzeichen, ebenfalls zuerst nach Strichen und dann nach Radikalen sortiert .

4. Einschränkungen von Big5

Obwohl der Big5-Code mehr als 10.000 Zeichen enthält, berücksichtigt er nicht die Namen von Personen, Ortsnamen, Dialekten, Chemie und Biologie, die in Umlauf sind Die verwendeten Zeichen enthalten keine japanischen Hiragana- und Katakana-Buchstaben.

In Taiwan beispielsweise wird das Wort „Zhu“ als Variante von „Zhu“ angesehen, daher ist das Wort „Zhu“ nicht enthalten. Einige Radikale im Kangxi-Wörterbuch (wie „亠“, „疒“, „?“, „?“ usw.), gebräuchliche Namen (wie „? Shake BoⅰDo Yinboⅰ?唷博ⅰ?“ sind nicht in Big5 enthalten

GB18030-Zeichensatz

1. Der Ursprung des Namens

Der vollständige Name von GB 18030 ist GB18030-2000 „Chinese Characters for Information Exchange“. „Basic Set of Encoded Character Sets“ ist ein neuer nationaler Standard für die Kodierung chinesischer Zeichen, der am 17. März 2000 von der chinesischen Regierung herausgegeben wurde. Software, die nach dem 31. August 2001 auf dem chinesischen Markt veröffentlicht wird, muss diesem Standard entsprechen

2 . Merkmale

Die Einführung des Zeichensatzstandards GB 18030 wurde durch umfangreiche Beteiligung und Demonstration namhafter Unternehmen der Informationstechnologiebranche im In- und Ausland, des Ministeriums für Informationsindustrie und der ehemaligen Staatsverwaltung umgesetzt of Quality and Technical Supervision

Der Zeichensatzstandard GB 18030 löst das Problem der Computerkodierung eines großen Zeichensatzes, der aus chinesischen Zeichen, japanischen Kana, koreanischen und chinesischen Minderheitszeichen besteht Der Standard umfasst mehr als 1,5 Millionen Codierungsbits und deckt 27484 chinesische, japanische, koreanische und chinesische Minderheitszeichen ab. Er erfüllt die Anforderungen an mehrsprachige, große Schriftgrößen und vielseitige, einheitliche Codierungsformate für den Informationsaustausch in Ostasien, beispielsweise auf dem chinesischen Festland. Hongkong, Taiwan, Japan und Südkorea und sind mit Unicode Version 3.0 kompatibel, füllen den Inhalt des erweiterten Unicode-Zeichenvokabulars „Unified Chinese Character Extension A“ und sind mit den früheren nationalen Zeichenkodierungsstandards (GB2312, GB13000) kompatibel. 1)

 3. Kodierungsmethode

 GB 18030. Der Standard verwendet drei Methoden: Einzelbyte, Doppelbyte und Vierbyte, um Zeichen zu kodieren. Der Einzelbyte-Teil verwendet 0×00 bis 0× 7F-Codes (entsprechend dem entsprechenden Code des Doppelbyte-Teils, dem ersten Zeichen). Der Abschnittscode reicht von 0×81 bis 0×FE, und die letzten Byte-Codebits sind 0×40 bis 0×7E und 0×80 Der Vier-Byte-Teil verwendet 0×30 bis 0×FE, die in GB/T 11383 nicht verwendet werden. 0×39 wird als Suffix verwendet, um die Doppelbyte-Kodierung zu erweitern Die Kodierung reicht von 0×81308130 bis 0×FE39FE39. Die Kodierungsbits des ersten und dritten Bytes sind 0×81 bis 0. ×FE, die Kodierungsbits des zweiten und vierten Bytes sind 0×30 bis 0×39

4. Enthaltener Inhalt

Der Doppelbyte-Teil umfasst hauptsächlich GB13000 1 Insgesamt 20.902 chinesische CJK-Zeichen, 13 zugehörige Satzzeichen, ideografische Deskriptoren, 80 zusätzliche chinesische Zeichen und Radikale/Komponenten, Doppelbyte-codiert Euro-Symbole usw. Der Vier-Byte-Teil enthält die oben genannten Doppelbyte-Zeichen, außerdem alle Zeichen in GB 13000.1 einschließlich CJK Unified Chinese Character Extension A

Unicode-Zeichensatz

1. Der Ursprung des Namens

Unicode-Zeichensatzkodierung ist ein Zeichenkodierungssystem, das von einer Organisation namens Unicode Consortium entwickelt wurde um den Austausch geschriebener Texte in verschiedenen Sprachen auf der ganzen Welt zu unterstützen. Die Entwicklung der Kodierung begann 1990 und wurde 1994 offiziell angekündigt. Die neueste Version ist Unicode 4.1.0 am 31. März 2005.

2. Funktionen

Unicode ist eine auf Computern verwendete Zeichenkodierung. Es legt eine einheitliche und eindeutige Binärkodierung für jedes Zeichen in jeder Sprache fest, um die Anforderungen für die sprach- und plattformübergreifende Textkonvertierung und -verarbeitung zu erfüllen.

3. Kodierungsmethode

Der Unicode-Standard verwendet immer hexadezimale Zahlen und wird beim Schreiben mit dem Präfix „U+“ versehen. Beispielsweise ist die Kodierung des Buchstabens „A“ 004116 und des Zeichens Die Kodierung von „?“ ist 20AC16. Daher wird die Codierung von „A“ als „U+0041“ geschrieben.

 4.UTF-8-Kodierung

 UTF-8 ist eine der Möglichkeiten, Unicode zu verwenden. UTF ist das Unicode-Übersetzungsformat, was bedeutet, dass Unicode in ein bestimmtes Format konvertiert wird.

UTF-8 erleichtert die Übertragung von Text in verschiedenen Sprachen und Kodierungen zwischen verschiedenen Computern über das Netzwerk und ermöglicht so die korrekte Übertragung von Doppelbyte-Unicode auf vorhandenen Systemen, die die Einzelbyte-Verarbeitung verarbeiten.

UTF-8 verwendet Bytes variabler Länge zum Speichern von Unicode-Zeichen. Beispielsweise verwenden ASCII-Buchstaben weiterhin 1 Byte zum Speichern, Akzentzeichen, griechische Buchstaben oder kyrillische Buchstaben verwenden 2 Bytes zum Speichern, während häufig verwendete chinesische Zeichen 3 Zeichen verwenden . Hilfsebenenzeichen belegen 4 Bytes.

5. UTF-16- und UTF-32-Kodierung

UTF-32, UTF-16 und UTF-8 sind die Zeichenkodierungsschemata des Unicode-Standardkodierungszeichensatzes, den UTF-16 verwendet a Oder eine Folge von zwei nicht zugewiesenen 16-Bit-Codeeinheiten zum Codieren eines Unicode-Codepunkts. UTF-32 stellt jeden Unicode-Codepunkt als 32-Bit-Ganzzahl mit demselben Wert dar.

Lösungen für Probleme mit verstümmeltem Code in verschiedenen PHP-Anwendungen

1) Verwenden Sie Tags, um die Seitenkodierung festzulegen

Die Funktion dieses Tags besteht darin, anzugeben, welcher Zeichensatz den Browser des Clients kodiert Verwendet für die Anzeige Auf dieser Seite kann xxx GB2312, GBK, UTF-8 (anders als MySQL, das UTF8 ist) usw. sein. Daher können die meisten Seiten diese Methode verwenden, um dem Browser mitzuteilen, welche Codierung beim Anzeigen dieser Seite verwendet werden soll, um Codierungsfehler und verstümmelte Zeichen zu vermeiden. Aber manchmal werden wir feststellen, dass dieser Satz immer noch nicht funktioniert, egal welcher xxx ist, der Browser verwendet immer die gleiche Codierung, darüber werde ich später sprechen.

Bitte beachten Sie, dass es sich um HTML-Informationen handelt und nur eine Anweisung ist, die lediglich anzeigt, dass der Server die HTML-Informationen an den Browser übergeben hat.

 2) header("content-type:text/html; charset=xxx");

 Die Funktion dieser Funktion header() besteht darin, die Informationen in den Klammern an http zu senden Kopfzeile. Wenn der Inhalt der Klammern dem im Artikel entspricht, ist die Funktion im Grunde dieselbe wie die Beschriftung. Wenn Sie das erste vergleichen, werden Sie feststellen, dass die Zeichen ähnlich sind. Der Unterschied besteht jedoch darin, dass der Browser bei Vorhandensein dieser Funktion immer die von Ihnen angeforderte XXX-Kodierung verwendet und niemals ungehorsam ist. Daher ist diese Funktion sehr nützlich. Warum passiert das? Dann müssen wir über den Unterschied zwischen http-Headern und HTML-Informationen sprechen:

Der http-Header ist eine Zeichenfolge, die vom Server gesendet wird, bevor HTML-Informationen mithilfe des http-Protokolls an den Browser gesendet werden. Das Tag gehört zu den HTML-Informationen, sodass der von header() gesendete Inhalt zuerst den Browser erreicht. Der beliebte Punkt ist, dass header() eine höhere Priorität hat (ich weiß nicht, ob ich das sagen kann). Wenn eine PHP-Seite sowohl einen Header („content-type:text/html;charset=xxx“) als auch einen Header („content-type:text/html;charset=xxx“) hat, erkennt der Browser nur den früheren http-Header und nicht das Meta. Natürlich kann diese Funktion nur innerhalb von PHP-Seiten verwendet werden.

Es stellt sich auch die Frage, warum Ersteres definitiv funktioniert, Letzteres jedoch manchmal nicht. Aus diesem Grund möchten wir als nächstes über Apache sprechen.

 3) AddDefaultCharset

 Im conf-Ordner des Apache-Stammverzeichnisses befindet sich das gesamte Apache-Konfigurationsdokument httpd.conf.

Öffnen Sie httpd.conf mit einem Texteditor. Zeile 708 (verschiedene Versionen können unterschiedlich sein) enthält AddDefaultCharset xxx, wobei xxx der Codierungsname ist. Die Bedeutung dieser Codezeile: Stellen Sie den Zeichensatz im HTTP-Header der Webseitendatei auf dem gesamten Server auf Ihren Standard-xxx-Zeichensatz ein. Das Vorhandensein dieser Zeile entspricht dem Hinzufügen einer Headerzeile („content-type:text/html; charset=xxx“) zu jeder Datei. Jetzt können Sie verstehen, warum der Browser immer gb2312 verwendet, obwohl er auf utf-8 eingestellt ist.

Wenn auf der Webseite ein Header („content-type:text/html; charset=xxx“) vorhanden ist, wird der Standardzeichensatz in den von Ihnen festgelegten Zeichensatz geändert, sodass diese Funktion immer vorhanden ist nützlich. Wenn Sie vor AddDefaultCharset xxx ein „#“ hinzufügen, diesen Satz auskommentieren und die Seite keinen Header („content-type...“) enthält, ist das Meta-Tag an der Reihe, wirksam zu werden.

Die Prioritätsreihenfolge der oben genannten ist unten aufgeführt:

header("content-type:text/html; charset=xxx")

.. AddDefaultCharset xxx

 ..

  Wenn Sie ein Webprogrammierer sind, wird empfohlen, jeder Ihrer Seiten einen Header („content-type: text/html; charset=xxx“) hinzuzufügen, um dies zu verhindern Stellen Sie sicher, dass jeder Server korrekt angezeigt werden kann und tragbarer ist.

 4) Default_charset-Konfiguration in php.ini:

 default_charset = „gb2312“ in php.ini definiert den Standard-Sprachzeichensatz von PHP. Im Allgemeinen wird empfohlen, diese Zeile auszukommentieren und den Browser die Sprache automatisch anhand des Zeichensatzes im Webseiten-Header auswählen zu lassen, anstatt eine zwingende Anforderung zu stellen, sodass Webdienste in mehreren Sprachen auf demselben Server bereitgestellt werden können.

Verwandte Etiketten:
php
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!