Mysql
 sql >> база данни >  >> RDS >> Mysql

Използване на utf8mb4 с php и mysql

utf8 на MySQL кодирането не действителен UTF-8. Това е кодиране, което е нещо като UTF-8, но поддържа само подмножество от това, което поддържа UTF-8. utf8mb4 е действителен UTF-8. Тази разлика е вътрешен детайл за внедряването на MySQL. И двете изглеждат като UTF-8 от страна на PHP. Независимо дали използвате utf8 или utf8mb4 , PHP ще получи валиден UTF-8 и в двата случая.

Това, което трябва да сте сигурни, е кодирането на връзката между PHP и MySQL е настроен на utf8mb4 . Ако е настроен на utf8 , MySQL няма да поддържа всички знаци. Вие задавате това кодиране на връзката с помощта на mysql_set_charset() , PDO charset Параметър за връзка с DSN или какъвто и да е друг метод е подходящ за избрания от вас API на базата данни.

mb_internal_encoding просто задава стойността по подразбиране за $encoding параметър всички mb_* функции имат. Няма нищо общо с MySQL.

UTF-8 и UTF-32 се различават по начина, по който кодират знаци. UTF-8 използва минимум от 1 байт за знак и максимум 4. UTF-32 винаги използва 4 байта за всеки знак. UTF-16 използва минимум 2 байта и максимум 4.
Поради променливата си дължина, UTF-8 има малко излишни разходи. Знак, който може да бъде кодиран в 2 байта в UTF-16, може да заема 3 или 4 в UTF-8; от друга страна, UTF-16 никога не използва по-малко от 2 байта. Ако съхранявате много азиатски текст, UTF-16 може да използва по-малко място за съхранение. Ако по-голямата част от текста ви е английски/ASCII, UTF-8 използва по-малко място за съхранение. UTF-32 винаги използва най-много място за съхранение.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Как да стартирате, рестартирате, проверявате състоянието и спирате MySQL сървъра

  2. Как да създам кръгова диаграма, която показва количеството на нещо, регистрирано от всеки човек?

  3. MySQL Зареждане на файл с данни

  4. Задействане на SQL заявка при натискане на бутон?

  5. Разлика между базите данни в паметта и базата данни с дискова памет