Различия между utf8 и latin1

В чем разница между utf8 и latin1?

Ответ 1

UTF-8 подготовлен к мировому господству, Latin1 - нет.

Если вы пытаетесь хранить нелатинские символы, такие как китайский, японский, иврит, русский и т.д., Используя кодировку Latin1, то они получатся как mojibake. Вы можете найти вводный текст этой статьи полезным (и даже больше, если вы немного знаете Java).

Обратите внимание, что полная поддержка 4-байтового UTF-8 была представлена только в MySQL 5.5. До этой версии он занимал до 3 байтов на символ, а не 4 байта на символ. Таким образом, он поддерживает только плоскость BMP, а не, например, плоскость Emoji. Если вам нужна полная поддержка 4-байтового UTF-8, обновите MySQL до версии не ниже 5.5 или перейдите на другую СУБД, такую как PostgreSQL. В MySQL 5. 5+ он называется utf8mb4.

Ответ 2

В латинском языке каждый символ имеет длину в один байт. В utf8 символ может состоять из более чем одного байта. Следовательно, utf8 имеет больше символов, чем latin1 (и символы, которые у них есть, не обязательно представлены одним и тем же байтом/bytesequence).