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

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

112 голосов
/ 25 апреля 2010

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

Ответы [ 2 ]

139 голосов
/ 25 апреля 2010

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

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

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

40 голосов
/ 25 апреля 2010

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

...