Warum brauchst du Programmierung?
Die kleinste Speichereinheit im Computer ist Byte (Byte), und die Anzahl der Zeichen, die durch ein Byte dargestellt werden können, ist begrenzt: 1Byte=8 Bit, ein Byte kann höchstens 255 Zeichen darstellen, und es gibt viele Sprachen auf der Welt, es gibt verschiedene Zeichen, die nicht durch ein Byte dargestellt werden können, daher dient das Char-Darstellungszeichen in Java dazu, dieses Codierungsproblem zu lösen; ein Char nimmt zwei Bytes ein, daher muss es zwischen char und dem kleinsten Einheitsbyte codiert werden. Das Gegenteil ist das Dekodieren.
Tatsächlich ist Codierung und Dekodierung der abgeschlossene Übersetzungsprozess ("Übersetzung" ist leicht zu verstehen), und verschiedene Kodierungsmethoden sind Wörterbücher.
1. ASCII-Code
Der vollständige Name ist American Standard Code for Information Interchange, das weltweit gängigste Einbyte-Codierungssystem, das hauptsächlich zur Darstellung modernen Englischen und anderer westeuropäischer Sprachen verwendet wird.
ASCII-Code wird durch 7 Bit dargestellt, die nur 128 Zeichen darstellen können, und 0~31 steht für Steuerzeichen wie Enter, Backspace, Delete usw.; 32~126 bedeutet, dass die gedruckten Zeichen über die Tastatur eingegeben und angezeigt werden können.
Darunter sind 48~57 0 bis 9 arabische Ziffern, 65~90 sind 26 große englische Buchstaben, 97~122 sind 26 kleine englische Buchstaben, und der Rest sind einige Satzzeichen, Operationssymbole usw., die für Details auf die ASCII-Standardtabelle verweisen können.
2、ISO-8859-1
Diese Codierung ist eine Erweiterung der ASCII-Codierung, ist aber immer noch eine Einbyte-Codierung und kann insgesamt nur 256 Zeichen darstellen.
Da ASCII nur 128 Zeichen darstellen kann, kann die Anzeige nicht vollständig ausgedrückt werdenISO-8859-1 erweitert die ASCII-CodierungÜber dem ASCII-Code werden die entsprechenden Textsymbole westeuropäischer Sprachen Griechisch, Thailändisch, Arabisch und Hebräisch hinzugefügt, und er ist abwärtskompatibel mit der ASCII-Codierung.
3、GB2312
Der vollständige Name von GB2312 lautet "Information Technology Chinese Encoding Character Set", eine zweibyte-Kodierung mit einem Kodierungsbereich von A1-F7, wobei A1-A9 der Symbolbereich ist und insgesamt 682 Symbole enthält; B0-F7 ist das Kanji-Gebiet und enthält 6763 Kanji.
Der vollständige Name ist der chinesische Zeichensatz für Informationsaustausch, der 1980 von China veröffentlicht wurde und hauptsächlich für die Verarbeitung chinesischer Zeichen in Computersystemen verwendet wird. GB2312 enthält hauptsächlich 6763 chinesische Zeichen und 682 Symbole.
GB2312 deckt den Großteil der Verwendung chinesischer Zeichen ab, kann aber keine besonderen seltenen Zeichen wie altchinesische Zeichen verarbeiten, weshalb Codes wie GBK und GB18030 später aufgetaucht sind.
4、GBK
Der vollständige Name von GBK ist die "Chinese Character Internal Code Extension Specification", die offenbar GB2312 erweitert hat, sein Codierungsbereich beträgt 8140-FEFE (entfernen Sie XX7F), mit insgesamt 23940 Codebits, die 21003 chinesische Zeichen darstellen können, und die Codierung ist kompatibel mit GB2312
GBK, der vollständige Name der chinesischen internen Codespezifikation, wurde 1995 formuliert. Sie erweitert hauptsächlich GB2312 und fügt weitere chinesische Zeichen hinzu, die insgesamt 21.003 chinesische Zeichen enthält.
GBK ist abwärtskompatibel mit der GB2312-Codierung, was bedeutet, dass die in GB2312 codierten chinesischen Zeichen normal mit GBK decodiert werden können und nicht verzerrt erscheinen, aber die chinesischen Zeichen, die mit GBK kodiert sind, nicht unbedingt mit GB2312 dekodiert werden.
5、GB18030
GB18030 vollständiger Name ist die Chinese Character Internal Code Extension Specification, der neueste interne Code-Zeichensatz, der 2000 veröffentlicht und 2001 durchgesetzt wurde, einschließlich der Sprachzeichen der meisten ethnischen Minderheiten in China, und mehr als 70.000 chinesische Zeichen enthält.
Es verwendet hauptsächlich Single-Byte-, Double-Byte- und Four-Byte-Zeichenkodierung und ist abwärtskompatibel mit GB2312 und GBK, obwohl es in unserem Land ein verpflichtender Standard ist, aber in der tatsächlichen Produktion selten verwendet wird und die am häufigsten verwendeten GBK und GB2312 sind.
6. UNICODE
Damit ihre Sprache normal im Computer dargestellt werden kann, hat jedes Land und jede Region ihren eigenen Code, sodass niemand den Code des anderen kennt, wenn es zu viele Codes gibt, schlug die ISO-Organisation zu dieser Zeit einen neuen Code namens UNICODE vor, um globale Kulturen, Zeichen und Symbole zu unterstützen. Als UNICODE formuliert wurde, war die Computerkapazität kein Problem mehr, daher wurde es so konzipiert, dass es zwei Bytes fixiert war, und alle Zeichen wurden in 16 Bit dargestellt, einschließlich englischer Zeichen, die zuvor nur 8 Bit belegten, was zu Platzverschwendung führte, und UNICODE wurde lange Zeit nicht beworben und angewendet.
7、UTF-16
Die Entstehung von UTF-16 ist ISO, um ein neues supralinguales Wörterbuch zu schaffen, durch das alle Sprachen der Welt sich gegenseitig übersetzen können. Man kann sich vorstellen, wie komplex und riesig dieses Wörterbuch ist. UTF-16 verwendet zwei Bytes, um das Unicode-Konvertierungsformat darzustellen (zwei Bytes sind 16 Bit, also UTF-16), und ist eine Darstellungsmethode mit fester Länge, das heißt, jedes Zeichen kann in zwei Bytes dargestellt werden. Das macht es sehr praktisch, Charaktere darzustellen. Es gibt jedoch auch einen Fehler, nämlich dass ein großer Teil der Zeichen in einem Byte dargestellt werden kann, während UTF-16 zwei Bytes verwendet, was eine Verschwendung von Speicherplatz darstellt. Es gibt also noch eine andere Art der Codierung, nämlich UTF-8.
UTF-16 ist die spezifische Implementierung von UNICODE, 16 ist 16 Bit, UTF-16 ist der Ursprung und definiert, wie UNICODE-Zeichen im Computer gespeichert werden. UTF-16 verwendet außerdem zwei Bytes, um jedes Zeichen darzustellen, was die Operationsfolge sehr effizient macht, was auch ein wichtiger Grund ist, warum Java UTF-16 als Format für Zeichen zur Speicherung verwendet.
UTF-16 eignet sich für den Einsatz zwischen Festplatte und Speicher, und die Umwandlung von Zeichen und Bytes zueinander und voneinander wird einfacher und effizienter sein, ist jedoch nicht für die Netzwerkübertragung geeignet, da dies den Bytestrom beschädigen kann.
8、UTF-8
UTF-8 verwendet eine Technologie mit variabler Länge, bei der jeder Kodierungsbereich unterschiedliche Codelängen hat und verschiedene Zeichentypen aus 1–6 Bytes bestehen können.
Die Codierungsregeln für UTF-8 sind wie folgt:
1) Wenn es 1 Byte ist und das höchste Bit 0, bedeutet das, dass es sich um 1 ASCII-Zeichen handelt. Man sieht, dass alle ASCII-Kodierungen bereits UTF-8 sind
2) Wenn es 1 Byte ist, beginnend mit 11, impliziert die Anzahl aufeinanderfolgender 1s die Anzahl der Bytes dieses Zeichens, zum Beispiel: 110xxxxx bedeutet, dass es das erste Byte eines Doppelbyte-UTF-8-Zeichens ist
3) Wenn es 1 Byte ist, beginnend mit 10, bedeutet das, dass es nicht das erste Byte ist, du musst nach vorne schauen, um das erste Byte des aktuellen Zeichens zu erhalten.
Obwohl UTF-16 sehr effizient ist, ist es auch der größte Nachteil von UNICODE, da alle Einzelbyte-Zeichen zwei Bytes ausgleichen müssen und der Speicherplatz verdoppelt wird, was offensichtlich Ressourcen verbraucht und nicht der aktuellen Situation der schnellen Internetentwicklung entspricht. Mit UTF-8 handelt es sich also um eine Implementierung der Zeichenkodierung mit variabler Zeichenlänge, die 1~6 Bytes mit fester Länge zur Kodierung von UNICODE-Zeichen verwenden kann.
UTF-8 verwendet Einbyte-Speicher für ASCII-Zeichen, und wenn ein einzelnes Zeichen beschädigt ist, wirkt sich das nicht auf die folgenden Zeichen aus, weshalb UTF-8 ideal für traditionelle Online-Systeme ist und heute eine der am weitesten verbreiteten Codierungen ist.
Wenn Sie chinesisch darstellen wollen, ist die Effizienz der UTF-8-Codierung größer als GBK und geringer als die von UTF-16, weshalb sie neben GBK auch die idealste Kodierungsmethode ist. |