Dieser Artikel stellt die String-Programmierung in Python vor Wir haben bereits gesagt, dass String auch ein Datentyp ist, aber Zeichen Was ist das Besondere? bezüglich der Zeichenfolge ist, dass ein Codierungsproblem vorliegt.
Da Computer nur Zahlen verarbeiten können, müssen Sie, wenn Sie Text verarbeiten möchten, den Text vor der Verarbeitung zunächst in Zahlen umwandeln. Die ersten Computer wurden mit 8 Bits als Byte entwickelt. Daher ist die größte Ganzzahl, die durch ein Byte dargestellt werden kann, 255 (binär 11111111 = dezimal 255). Wenn Sie eine größere Ganzzahl darstellen möchten, müssen Sie mehr Bytes verwenden. Beispielsweise ist die maximale Ganzzahl, die durch zwei Bytes dargestellt werden kann, 65535, und die maximale Ganzzahl, die durch 4 Bytes dargestellt werden kann, ist 4294967295.
Da der Computer von Amerikanern erfunden wurde, wurden zunächst nur 127 Zeichen in den Computer codiert, bei denen es sich um englische Groß- und Kleinbuchstaben, Zahlen und einige Symbole handelt. Diese Codierungstabelle wird als ASCII-Codierung bezeichnet, z. B. die Großbuchstaben The Der Code für den Buchstaben A ist 65 und der Code für den Kleinbuchstaben z ist 122.
Aber um Chinesisch zu verarbeiten, reicht ein Byte offensichtlich nicht aus, und es kann nicht zu Konflikten mit der ASCII-Codierung kommen. Daher hat China die GB2312-Codierung zur Codierung von Chinesisch formuliert.
Was Sie sich vorstellen können, ist, dass es Hunderte von Sprachen auf der Welt gibt, die Japanisch in Shift_JIS kompiliert haben, und Südkorea hat Koreanisch in Euc-kr kompiliert. und es wird unweigerlich zu Konflikten kommen, dass in mehrsprachigen gemischten Texten verstümmelte Zeichen angezeigt werden.
So entstand Unicode. Unicode vereint alle Sprachen in einer Reihe von Codierungen, sodass es keine verstümmelten Zeichen mehr gibt.
Der Unicode-Standard entwickelt sich ebenfalls ständig weiter, aber der am häufigsten verwendete Standard ist die Verwendung von zwei Bytes zur Darstellung eines Zeichens (wenn Sie sehr seltene Zeichen verwenden möchten, benötigen Sie 4 Bytes). Moderne Betriebssysteme und die meisten Programmiersprachen unterstützen Unicode direkt.
Werfen wir nun einen Blick auf den Unterschied zwischen ASCII-Kodierung und Unicode-Kodierung: Die ASCII-Kodierung beträgt 1 Byte, während die Unicode-Kodierung normalerweise 2 Bytes beträgt.
Der in ASCII codierte Buchstabe A ist dezimal 65, binär 01000001;
Das in ASCII codierte Zeichen 0 ist dezimal 48, binär 00110000. Beachten Sie, dass sich das Zeichen „0“ von der Ganzzahl unterscheidet 0 ;
Chinesische Zeichen haben den Bereich der ASCII-Kodierung überschritten. Die Unicode-Kodierung ist 20013 in Dezimalzahl und 00101101 in Binärform.
Sie können davon ausgehen, dass Sie, wenn Sie das ASCII-codierte A in Unicode codieren, nur 0 voranstellen müssen. Daher ist die Unicode-Codierung von A 00000000 01000001.
Es ist ein neues Problem aufgetreten: Bei einer Vereinheitlichung in die Unicode-Kodierung verschwindet das Problem verstümmelter Zeichen. Wenn der Text, den Sie schreiben, jedoch grundsätzlich ausschließlich auf Englisch verfasst ist, benötigt die Unicode-Kodierung doppelt so viel Speicherplatz wie die ASCII-Kodierung, was hinsichtlich der Speicherung und Übertragung sehr unwirtschaftlich ist.
Daher ist im Sinne der Erhaltung die UTF-8-Kodierung erschienen, die die Unicode-Kodierung in eine „Kodierung mit variabler Länge“ umwandelt. Die UTF-8-Kodierung kodiert ein Unicode-Zeichen in 1-6 Bytes entsprechend unterschiedlicher Zahlengrößen. Häufig verwendete englische Buchstaben werden in 1 Byte kodiert, und chinesische Zeichen werden normalerweise in 1-6 Bytes kodiert. In 4-6 Bytes kodiert. Wenn der Text, den Sie übertragen möchten, eine große Anzahl englischer Zeichen enthält, kann die UTF-8-Kodierung Platz sparen:
Sie werden also sehen, dass der Quellcode vieler Webseiten Informationen wie weisen darauf hin, dass die Webseite UTF-8-Codierung verwendet.
Das obige ist der detaillierte Inhalt vonEine kurze Einführung in Probleme mit der String-Kodierung in der Python-Programmierung. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!