Mysql
 sql >> Baza danych >  >> RDS >> Mysql

Używanie utf8mb4 z php i mysql

utf8 MySQL kodowanie nie rzeczywisty UTF-8. Jest to kodowanie podobne do UTF-8, ale obsługuje tylko podzbiór tego, co obsługuje UTF-8. utf8mb4 jest rzeczywiste UTF-8. Ta różnica jest szczegółem implementacji wewnętrznej MySQL. Oba wyglądają jak UTF-8 po stronie PHP. Czy używasz utf8 lub utf8mb4 , PHP otrzyma poprawny kod UTF-8 w obu przypadkach.

Musisz się upewnić, że kodowanie połączenia między PHP a MySQL jest ustawiona na utf8mb4 . Jeśli jest ustawiony na utf8 , MySQL nie obsługuje wszystkich znaków. Ustawiasz to kodowanie połączenia za pomocą mysql_set_charset() , PDO charset Parametr połączenia DSN lub jakakolwiek inna metoda jest odpowiednia dla wybranego interfejsu API bazy danych.

mb_internal_encoding po prostu ustawia domyślną wartość dla $encoding parametr wszystkie mb_* funkcje mają. Nie ma to nic wspólnego z MySQL.

UTF-8 i UTF-32 różnią się sposobem kodowania znaków. UTF-8 używa minimum 1 bajt na znak i maksymalnie 4. UTF-32 zawsze używa 4 bajtów na każdy znak. UTF-16 używa co najmniej 2 bajtów, a maksymalnie 4.
Ze względu na zmienną długość, UTF-8 ma trochę narzutu. Znak, który można zakodować na 2 bajty w UTF-16, może mieć 3 lub 4 w UTF-8; z drugiej strony, UTF-16 nigdy nie używa mniej niż 2 bajty. Jeśli przechowujesz dużo tekstu azjatyckiego, UTF-16 może zużywać mniej miejsca. Jeśli większość tekstu jest w języku angielskim/ASCII, UTF-8 zajmuje mniej miejsca. UTF-32 zawsze zajmuje najwięcej miejsca.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Czy istnieje powód, aby nie używać <=> (null safe równa się operatorowi) w mysql zamiast =?

  2. Jak uzyskać pierwszy rekord w każdej grupie w MySQL?

  3. Jak połączyć się z wieloma bazami danych na jednej stronie PHP?

  4. Jak uciec dosłowny znak procentu, gdy włączona jest opcja NO_BACKSLASH_ESCAPES?

  5. Anulować oczekujące żądania AJAX w aplikacji PHP?