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

Formatowanie wiersza poleceń MySQL za pomocą UTF8

Krótka odpowiedź

Uruchom klienta z opcją --default-character-set=utf8 :

mysql --default-character-set=utf8

Możesz ustawić to jako domyślne w /etc/mysql/my.cnf plik.

[mysql]
default-character-set=utf8

Krótka odpowiedź nie zadziałała, przeczytaj poniżej

Powyższe polecenie wymusza character_set_client , character_set_connection i character_set_results konfiguruj zmienne na utf8 .

Aby sprawdzić wartości wszystkich zmiennych konfiguracyjnych związanych z zestawem znaków, możesz uruchomić:

show variables like '%char%';

character_set_database daje zestaw znaków bieżącej bazy danych (schematu), w której się znajdujesz. Schemat i tabele są tworzone domyślnie z zestawem znaków określonym w character_set_server , chyba że jest to wyraźnie określone w CREATE oświadczenie.

character_set_server można zmienić w my.cnf plik:

[mysqld]
character-set-server = utf8

Dodatkowo tabele i kolumny mogą mieć własny zestaw znaków, który może różnić się od ich tabeli nadrzędnej lub schematu. Aby dokładnie sprawdzić wartości każdej tabeli i kolumny w bazie danych, zobacz tę odpowiedź:Jak mogę sprawdzić, jakim zestawem znaków jest baza danych / tabela / kolumna MySQL?

Jeśli chcesz zmienić zestaw znaków istniejących tabel i kolumn, zobacz tę odpowiedź:Jak przekonwertować cały zestaw znaków bazy danych MySQL i porównywanie do UTF-8?

Więcej informacji na temat zestawów znaków połączenia w dokumentacji mysql .

Wszystko jest ustawione na utf8, ale wciąż widzę dziwne znaki

Nawet jeśli wszystkie zmienne, tabele i kolumny zestawów znaków są ustawione na utf8 , może się zdarzyć, że na ekranie zobaczysz dziwne postacie. Na przykład ktoś mógł napisać znaki Unicode w utf8 kolumna, przez klienta z latin1 połączenie (na przykład uruchamiając mysql --default-character-set=latin1 ). W takim przypadku musisz połączyć się z bazą danych za pomocą tego samego zestawu znaków, w jakim zostały zapisane wartości. Możesz także odzyskać i przepisać je za pomocą prawidłowego kodowania.

UWAGA :Jak wskazują komentarze, mysql utf8 kodowanie nie jest prawdziwą i pełną implementacją UTF-8. Jeśli potrzebna jest pełna implementacja UTF-8, można użyć utf8mb4 zestaw znaków:

mysql --default-character-set=utf8mb4

Więcej informacji tutaj:Jaka jest różnica między zestawami znaków utf8mb4 i utf8 w MySQL?



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. TIME_TO_SEC() Przykłady – MySQL

  2. 5 najlepszych kursów online do nauki MySQL

  3. MySQL wybierz odrębny

  4. SQL SELECT, aby uzyskać pierwsze N ​​dodatnich liczb całkowitych

  5. Funkcja MySQL LOG2() – Zwróć logarytm Base-2 wartości