яка різниця між utf8 та latin1?
яка різниця між utf8 та latin1?
Відповіді:
UTF-8 готується до світового панування, Latin1 - ні.
Якщо ви намагаєтесь зберігати не латинські символи, такі як китайський, японський, іврит, російська та ін., Використовуючи кодування Latin1, вони в кінцевому підсумку стануть mojibake . Вступний текст цієї статті вам може бути корисним (і навіть більше, якщо ви трохи знаєте Java).
Зауважте, що повна 4-байтова підтримка UTF-8 була представлена лише в MySQL 5.5. Перед цією версією вона містить до 3 байт на символ, а не 4 байти на символ. Отже, він підтримував лише площину BMP, а не, наприклад, площину Emoji. Якщо ви хочете повну 4-байтну підтримку UTF-8, оновіть MySQL принаймні до 5,5 або перейдіть до іншої RDBMS, наприклад PostgreSQL. У MySQL 5.5+ це називається utf8mb4
.
VARBINARY
замість, так VARCHAR
і розшифрувати / кодувати у бізнес-рівні самостійно, але це хакі. Подумайте, задавши нове запитання, можливо, є кращі способи.
У латині1 кожен символ має рівно один байт. У utf8 символ може складатися з декількох байт. Отже, utf8 має більше символів, ніж latin1 (а символи, які вони мають спільно, не обов'язково представлені тим самим байтом / побічним наслідком).
binary
порівнювати ...? а який краще для англійських / числових полів: ascii_general_ci
або ascii_bin
?