Was ist der Unterschied zwischen utf8 und latin1?
mysql
utf-8
installation
latin1
binbash
quelle
quelle
Antworten:
UTF-8 ist auf die Weltherrschaft vorbereitet, Latin1 nicht.
Wenn Sie versuchen, nicht-lateinische Zeichen wie Chinesisch, Japanisch, Hebräisch, Russisch usw. mit Latin1-Codierung zu speichern, werden sie als Mojibake angezeigt . Möglicherweise finden Sie den Einführungstext dieses Artikels hilfreich (und noch mehr, wenn Sie ein bisschen Java kennen).
Beachten Sie, dass die vollständige 4-Byte-UTF-8-Unterstützung nur in MySQL 5.5 eingeführt wurde. Vor dieser Version sind es nur bis zu 3 Bytes pro Zeichen, nicht bis zu 4 Bytes pro Zeichen. Es wurde also nur die BMP-Ebene unterstützt und nicht z. B. die Emoji-Ebene. Wenn Sie eine vollständige 4-Byte-UTF-8-Unterstützung wünschen, aktualisieren Sie MySQL auf mindestens 5,5 oder wählen Sie ein anderes RDBMS wie PostgreSQL. In MySQL 5.5+ heißt es
utf8mb4
.quelle
VARBINARY
stattVARCHAR
und dekodieren / kodieren in dem Business - Tiere selbst, aber dies ist Hacky. Stellen Sie eine neue Frage, vielleicht gibt es bessere Möglichkeiten.In latin1 ist jedes Zeichen genau ein Byte lang. In utf8 kann ein Zeichen aus mehr als einem Byte bestehen. Folglich hat utf8 mehr Zeichen als latin1 (und die Zeichen, die sie gemeinsam haben, werden nicht unbedingt durch dasselbe Byte / dieselbe Bytequenz dargestellt).
quelle
binary
zusammenstellen ...? und welches ist besser für englisch / numerische Felder:ascii_general_ci
oderascii_bin
?