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

Форматиране на командния ред на MySQL с UTF8

Кратък отговор

Стартирайте клиента с опция --default-character-set=utf8 :

mysql --default-character-set=utf8

Можете да зададете това по подразбиране в /etc/mysql/my.cnf файл.

[mysql]
default-character-set=utf8

Краткият отговор не работи, прочетете по-долу

Командата по-горе принуждава character_set_client , character_set_connection и character_set_results конфигурационните променливи да бъдат utf8 .

За да проверите стойностите за всички конфигурационни променливи, свързани с набор от знаци, можете да изпълните:

show variables like '%char%';

character_set_database ви дава набора от знаци на текущата база данни (схема), в която се намирате. Схемата и таблиците се създават по подразбиране с набора от знаци, посочен в character_set_server , освен ако не е посочен изрично в CREATE изявление.

character_set_server може да се промени в my.cnf файл:

[mysqld]
character-set-server = utf8

Освен това таблиците и колоните могат да имат свой собствен набор от знаци, който може да се различава от тяхната родителска таблица или схема. За да проверите конкретно стойностите на всяка таблица и колона в база данни, вижте този отговор:Как да видя какъв набор от знаци представлява MySQL база данни/таблица/колона?

Ако искате да промените набора от знаци на съществуващите таблици и колони, вижте този отговор:Как да конвертирам цял набор от символи и съпоставяне на MySQL база данни в UTF-8?

Повече информация за наборите от символи за връзка в документацията на mysql .

Всичко е настроено на utf8, но все още виждам странни знаци

Дори ако всички променливи, таблици и колони са зададени на utf8 , може да има случаи, когато виждате странни знаци на екрана си. Например, някой може да е написал Unicode символи в utf8 колона, чрез клиент с latin1 връзка (например чрез стартиране на mysql --default-character-set=latin1 ). В този случай трябва да се свържете към базата данни със същия набор от знаци, както са били записани стойностите. Можете също да ги извлечете и пренапишете чрез правилното кодиране.

ЗАБЕЛЕЖКА :Както посочват коментарите, mysql utf8 кодирането не е истинска и пълна реализация на UTF-8. Ако е необходима пълна реализация на UTF-8, може да се използва utf8mb4 набор от знаци:

mysql --default-character-set=utf8mb4

Повече информация тук:Каква е разликата между utf8mb4 и utf8 набори знаци в 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. Laravel 5.4 на PHP 7.0:PDO изключение - не можа да се намери драйвер (MySQL)

  2. LOAD DATA LOCAL INFILE дава грешка. Използваната команда не е разрешена с тази версия на MySQL

  3. Инсталиране и работа с MySQL 5 на Windows 7

  4. Как да ограничите редовете в MySQL набор от резултати

  5. ТОП 5 Синтаксис за изтриване на MySQL със съвети за T-SQL разработчици