Warum brauchen wir eine Verschlüsselung?
Die kleinste Speichereinheit im Computer ist ein Byte (Byte), ein Byte kann die Anzahl der Zeichen und begrenzt, 1Byte = 8Bit, ein Byte kann nur bis zu 255 Zeichen darstellen, und die Sprachen der Welt und mehr, gibt es eine Vielzahl von verschiedenen Zeichen, kann nicht verwendet werden, um ein Byte darstellen, so Java-Char, um das Zeichen zu vertreten ist, um die Codierung Problem zu lösen, ein Char entfielen zwei Bytes, so von Char auf die kleinste Einheit zwischen Byte muss codiert werden, und umgekehrt für die Decodierung, ein Char entfielen zwei Bytes, so von Char auf die kleinste Einheit zwischen Byte muss codiert werden. Ein char macht zwei Bytes aus, also muss von char bis zur kleinsten Einheit zwischen Byte kodiert werden, und umgekehrt für die Dekodierung.
In der Tat, Kodierung und Dekodierung ist der Abschluss des Übersetzungsprozesses ("Übersetzung" ist einfach zu verstehen), eine Vielzahl von Kodierung ist ein Wörterbuch.
1, ASCII-Code
Alle bekannt als der American Standard Code for Information Interchange, der American Standard Code for Information Interchange, die die weltweit am weitesten verbreitete Single-Byte-Codierung System, vor allem verwendet, um moderne englische und andere westeuropäische Sprachen anzuzeigen ist.
ASCII-Code mit 7-Bit-Darstellung, kann nur 128 Zeichen darstellen, 0 bis 31 Steuerzeichen wie Eingabe, Rücktaste, Löschen, etc.; 32 bis 126 Druckzeichen, die über die Tastatur eingegeben werden können und die Zeichen angezeigt werden können, die 48 bis 57 für die 0 bis 9 Zeichen, die über die Tastatur eingegeben werden können und angezeigt werden können.
Darunter 48 bis 57 für 0 bis 9 zehn arabische Ziffern, 65 bis 90 für die 26 Großbuchstaben des Alphabets, 97 bis 122 für die 26 Kleinbuchstaben des Alphabets und der Rest für einige Interpunktionszeichen, arithmetische Symbole usw. Sie können sich auf die ASCII-Standardtabelle beziehen.
2、ISO-8859-1
Der Code basiert auf der Erweiterung des ASCII-Codes, ist aber immer noch ein Ein-Byte-Code mit insgesamt nur 256 Zeichen.
Da ASCII nur 128 Zeichen darstellen kann, kann die Anzeige nicht vollständig ausgedrückt werden, so ISO-8859-1 erweitert den ASCII-Code, auf der Oberseite des ASCII-Code und fügen Sie die westeuropäischen Sprachen, Griechisch, Thai, Arabisch, Hebräisch entsprechend der Text-Symbole, ist es abwärts kompatibel mit dem ASCII-Code.
3、GB2312
Der vollständige Name von GB2312 ist "Information Technology Chinese Coded Character Set", eine Doppelbyte-Kodierung, und der Kodierungsbereich ist A1-F7, wobei A1-A9 der Symbolbereich ist, der insgesamt 682 Symbole enthält, und B0-F7 der chinesische Zeichenbereich ist, der 6.763 chinesische Zeichen enthält.
Der vollständige Name ist Chinese Character Code Character Set for Information Exchange (Chinesischer Zeichensatz für den Informationsaustausch), der 1980 von China freigegeben wurde und hauptsächlich für die Verarbeitung chinesischer Zeichen in Computersystemen verwendet wird. GB2312 enthält hauptsächlich 6.763 chinesische Zeichen und 682 Symbole.
GB2312 deckt den größten Teil der chinesischen Schriftzeichen ab, kann aber seltene Sonderzeichen wie Altchinesisch nicht verarbeiten, weshalb später Codes wie GBK und GB18030 erschienen.
4、GBK
Der vollständige Name von GBK ist "Chinese Character Internal Code Extension Specification" (Spezifikation für die Erweiterung des internen Codes für chinesische Zeichen), die zur Erweiterung von GB2312 erschienen ist. Sein Kodierungsbereich ist 8140-FEFE (XX7F entfernen), insgesamt 23940 Codepunkte, die 21003 chinesische Zeichen darstellen können, und seine Kodierung ist mit GB2312 kompatibel!
GBK, bekannt als Chinese Internal Code Specification, wurde 1995 entwickelt. Er erweitert hauptsächlich GB2312, indem er weitere chinesische Zeichen hinzufügt, und enthält insgesamt 21003 chinesische Zeichen.
GBK ist abwärtskompatibel mit GB2312, d.h. die in GB2312 kodierten chinesischen Zeichen können normal in GBK dekodiert werden, aber die in GBK kodierten chinesischen Zeichen können in GB2312 dekodiert werden, ohne dass es zu Fehlern kommt.
5、GB18030
GB18030, bekannt als Chinese Character Code Extension Specification, ist der neueste interne Zeichensatz, der im Jahr 2000 veröffentlicht und 2001 in Kraft gesetzt wurde. Er enthält die meisten Sprachzeichen der ethnischen Minderheiten Chinas, darunter mehr als 70.000 chinesische Zeichen.
Er verwendet hauptsächlich Ein-Byte-, Zwei-Byte- und Vier-Byte-Zeichen, die mit GB2312 und GBK rückwärtskompatibel sind. Obwohl es sich um einen obligatorischen Standard in China handelt, wird er in der tatsächlichen Produktion nur selten verwendet, und die am häufigsten verwendeten sind GBK und GB2312.
6. UNICODE
Um ihre eigene Sprache kann richtig in den Computer angezeigt werden, jedes Land und jede Region haben ihren eigenen Code, so dass der Code mehr, die nicht wissen, einander den Code, dieses Mal die ISO-Organisation legte einen neuen Code namens UNICODE Codierung, so dass die globale Kultur, Zeichen, Symbole unterstützt werden können. UNICODE in der Entwicklung der Computer-Kapazität ist nicht mehr ein Problem, so dass das Design eines festen zwei Bytes, alle Zeichen werden durch 16 Bit dargestellt, und alle Zeichen werden durch 16 Bit dargestellt. Alle Zeichen werden durch 16 Bits dargestellt, einschließlich der englischen Zeichen, die zuvor nur 8 Bits ausmachten, so dass es zu einer Verschwendung von Platz führen wird, UNICODE ist nicht für eine lange Zeit popularisiert worden.
7、UTF-16
Das Erscheinungsbild von UTF-16 ist, dass ISO will eine neue Super-Sprache Wörterbuch zu schaffen, können alle Sprachen in der Welt zueinander durch dieses Wörterbuch übersetzt werden, kann man sich vorstellen, dass dieses Wörterbuch ist, wie komplex und riesig. UTF-16 verwendet zwei Bytes, um die Unicode-Konvertierung Format (zwei Bytes ist 16 Bit, so ist es notwendig, UTF-16), die Verwendung einer festen Länge Darstellung der Methode, d.h. jedes Zeichen kann durch zwei Bytes dargestellt werden. Es ist sehr bequem, Zeichen auf diese Weise darzustellen. Allerdings gibt es auch einen Defekt, das heißt, ein großer Teil der Zeichen mit einem Byte ausgedrückt werden kann, UTF-16 aber mit zwei Bytes, einige Verschwendung von Speicherplatz. Deshalb wurde eine andere Kodierungsmethode entwickelt, nämlich UTF-8.
UTF-16 ist eine spezielle Implementierung von UNICODE, 16, das heißt, 16-Bit, UTF-16, dass der Grund dafür ist, definiert die UNICODE-Zeichenspeicherung in den Computer, UTF-16 verwendet auch zwei Bytes, um ein Zeichen zu vertreten, die den Betrieb der Zeichenkette macht, ist sehr effizient, die Java UTF-16 als das Format des Zeichens im Speicher gespeichert ist wichtig! Dies ist der Grund, warum Java UTF-16 als Format für die Speicherung von Zeichen im Speicher verwendet.
UTF-16 eignet sich für die Verwendung zwischen Festplatte und Speicher, die Umwandlung von Zeichen und Bytes ineinander wird einfacher und effizienter, aber nicht für die Übertragung über das Netzwerk geeignet, weil die Netzwerkübertragung den Bytestrom beschädigen kann.
8. UTF-8
UTF-8 verwendet eine Technologie mit variabler Länge, jede Kodierungsregion hat eine andere Zeichencodelänge, verschiedene Arten von Zeichen können aus 1-6 Bytes bestehen.
Die Kodierungsregeln von UTF-8 lauten wie folgt:
1) Wenn es sich um 1 Byte handelt und das höchste Bit 0 ist, bedeutet dies, dass es sich um 1 ASCII-Zeichen handelt. Man sieht, dass alle ASCII-Codes bereits UTF-8 sind.
2) Wenn es sich um 1 Byte handelt, beginnend mit 11, bedeutet die Anzahl der aufeinanderfolgenden 1en die Anzahl der Bytes des Zeichens, z. B.: 110xxxxx bedeutet, dass es sich um das erste Byte eines Doppelbyte-UTF-8-Zeichens handelt.
3) Wenn es 1 Byte ist, beginnend mit 10, bedeutet dies, dass es nicht das erste Byte ist, dann müssen Sie vorwärts suchen, um das erste Byte des aktuellen Zeichens zu erhalten.
Obwohl UTF-16 ist sehr effizient, aber auch die größte schlechte Sache über UNICODE, so dass alle Single-Byte-Zeichen müssen für zwei Bytes, der Speicherplatz ist um einen Faktor von zwei, die natürlich verbraucht Ressourcen vergrößert, nicht die aktuelle Situation der schnellen Entwicklung des Internets. Deshalb gibt es UTF-8, eine Implementierung der UNICODE-Kodierung mit variabler Länge, die 1 bis 6 Bytes fester Länge zur Kodierung von UNICODE-Zeichen verwenden kann.
UTF-8 verwendet Einzelbyte-Speicher für ASCII-Zeichen, und die Beschädigung eines einzelnen Zeichens wirkt sich nicht auf die nachfolgenden Zeichen aus, so dass sich UTF-8 sehr gut für die herkömmliche Verwendung im Internet eignet und heutzutage eine der am häufigsten verwendeten Kodierungen ist.
UTF-8 ist bei der Darstellung chinesischer Schriftzeichen effizienter als GBK und weniger effizient als UTF-16, so dass es neben GBK die idealste Kodierungsmethode ist. |