sql >> Databáze >  >> RDS >> Mysql

Formátování příkazového řádku MySQL s UTF8

Krátká odpověď

Spusťte klienta s volbou --default-character-set=utf8 :

mysql --default-character-set=utf8

Toto můžete nastavit jako výchozí v /etc/mysql/my.cnf soubor.

[mysql]
default-character-set=utf8

Krátká odpověď nefungovala, přečtěte si níže

Výše uvedený příkaz vynutí character_set_client , character_set_connection a character_set_results konfigurační proměnné na utf8 .

Chcete-li zkontrolovat hodnoty všech konfiguračních proměnných souvisejících se znakovou sadou, můžete spustit:

show variables like '%char%';

character_set_database vám poskytuje znakovou sadu aktuální databáze (schéma), ve které se nacházíte. Schéma a tabulky jsou standardně vytvořeny se znakovou sadou zadanou v character_set_server , pokud to není výslovně uvedeno v CREATE prohlášení.

character_set_server lze změnit v my.cnf soubor:

[mysqld]
character-set-server = utf8

Navíc tabulky a sloupce mohou mít svou vlastní znakovou sadu, která se může lišit od jejich nadřazené tabulky nebo schématu. Chcete-li konkrétně zkontrolovat hodnoty každé tabulky a sloupce v databázi, podívejte se na tuto odpověď:Jak zjistím, jaká znaková sada je databáze / tabulka / sloupec MySQL?

Pokud chcete změnit znakovou sadu existujících tabulek a sloupců, přečtěte si tuto odpověď:Jak převést celou znakovou sadu MySQL databáze a řazení do UTF-8?

Další informace o znakových sadách připojení v dokumentaci mysql .

Vše je nastaveno na utf8, ale stále vidím divné znaky

I když jsou všechny proměnné, tabulky a sloupce znakových sad nastaveny na utf8 , mohou nastat případy, kdy na obrazovce uvidíte podivné znaky. Někdo mohl například napsat znaky Unicode do utf8 prostřednictvím klienta s latin1 připojení (například spuštěním mysql --default-character-set=latin1 ). V tomto případě se musíte připojit k databázi se stejnou znakovou sadou, jakou byly zapsány hodnoty. Můžete je také načíst a přepsat pomocí správného kódování.

POZNÁMKA :Jak zdůrazňují komentáře, mysql utf8 kódování není skutečnou a úplnou implementací UTF-8. Pokud je potřeba plná implementace UTF-8, lze použít utf8mb4 znaková sada:

mysql --default-character-set=utf8mb4

Více informací zde:Jaký je rozdíl mezi znakovými sadami utf8mb4 a utf8 v MySQL?



  1. Jak funguje funkce FROM_BASE64() v MySQL

  2. Výkon MySQL:Identifikace dlouhých dotazů

  3. Mysql vložit do 2 tabulek

  4. Úvod do Hadoopu a velkých dat