Igcina kanjani i-Emoji ku-MySQL?

Uma isisho se-Emoji sigcinwe ekubhalweni ngekhodi kwe-utf8MySQL databasenoma i-MariaDB, ayikwazi ukuboniswa.

Kungani isisho se-Emoji sifakwe kusizindalwazi siba uhlamvu lophawu lombuzo?

Ngenxa yokuthi izinkulumo ze-Emoji ziyizinhlamvu ezingu-4-byte, futhi uhlamvu lwe-utf8 olusethiwe lusekela kuphela amabhayithi angu-1-3 ezinhlamvu, izinkulumo ze-Emoji azikwazi ukubhalwa kusizindalwazi.

Indlela yokuxazulula inkinga ukuthi isisho se-Emoji esifakwe ku-database siba uhlamvu lombuzo?

Kunezixazululo ezi-2:

  1. Faka umbhalo mathupha, esikhundleni sezinhlamvu zamabhayithi amane ngezinhlamvu zangokwezifiso.
  2. shintsha MySQL Isethi yezinhlamvu ze-database, shintsha isethi yohlamvu egciniwe isuka ku-utf8 iye ku-utf8mb4, isekele izinhlamvu zebhayithi eziyi-1-4.

Eqinisweni, indlela yokuqala iwumsebenzi omningi futhi ayifaneleki.

Kunconywa ukusebenzisa isisombululo sesibili, uguqule isethi yezinhlamvu ze-MySQL database.

Kusukela kunguqulo ye-MySQL 5.5.3, isizindalwazi singasekela isethi yezinhlamvu ze-utf4mb8 zamabhayithi angu-4, futhi uhlamvu lungaba namabhayithi angu-4, ngakho lungakwazi ukusekela amasethi ezinhlamvu amaningi, futhi lungakwazi ukugcina izinkulumo ze-Emoji.

  • Ngemva kwe-MySQL 5.5.3, ungakwazi ngokuyisisekelo uthuthukele kusethi yezinhlamvu ze-utf8mb4.
  • Ngesikhathi esifanayo, i-utf8mb4 iyahambisana nesethi yezinhlamvu ze-utf8.
  • Umbhalo wekhodi, indawo kanye nokugcinwa kwezinhlamvu ze-utf8 kuku-utf8mb4.
  • Kuyafana nesethi yezinhlamvu ze-utf8, akukho monakalo kudatha ekhona.

Ngenxa yephpMyAdminKumathebula asanda kwakhiwa kusizindalwazi esisanda kwakhiwa, umbhalo wekhodi ozenzakalelayo uthi:Latin1

  • Lokhu kubhala ngekhodi akukwazi ukufaka izinkulumo zesiShayina neze-Emoji;
  • Udinga ukushintsha isethi yombhalo wekhodi wohlamvu lwesethi yedathabheyisi nethebula ku-utf8mb4;
  • Bese, qala kabusha i-MySQL, ungafaka izinkulumo zesiShayina neze-Emoji.

Isixazululo senkinga yezinhlamvu ze-MySQL Emoji

Isinyathelo sesi-1:Guqula ifayela lokumisa le-MySQL elithi my.cnf

  • (Iseva yeWindows yi-my.ini,LinuxIseva yi-my.cnf)
  • my.cnf file, ngokuvamile ku/etc/mysql/my.cnfisikhundla.
  • Iphaneli yokulawula ye-CWPifayela le-my.cnf, elingaphakathi/etc/my.cnfisikhundla.

Ngemva kokuyithola, sicela wengeze okuqukethwe okulandelayo ezingxenyeni ezintathu ezilandelayo ▼

[client]

default-character-set = utf8mb4

[mysql]

default-character-set = utf8mb4

[mysqld]

character-set-client-handshake = FALSE

character-set-server = utf8mb4

collation-server = utf8mb4_unicode_ci

init_connect='SET NAMES utf8mb4'

Isinyathelo sesi-2:Qala kabusha i-database ye-MySQL

service mysqld restart

Isinyathelo sesi-3: Hlola uhlamvu olusethiwe futhi bese ufaka ▼ emugqeni womyalo we-SQL

SHOW VARIABLES WHERE Variable_name LIKE 'character_set_database';

Hlola ukuthi ngabe okulandelayo ▼

Igcina kanjani i-Emoji ku-MySQL?

Faka umyalo olandelayo we-SQL▼

SHOW VARIABLES WHERE Variable_name LIKE 'character_set_%' OR Variable_name LIKE 'collation%';

Hlola ukuthi ngabe imi kanje▼

 +--------------------------+--------------------+

| Variable_name | Value |

+--------------------------+--------------------+

| character_set_client | utf8mb4 |

| character_set_connection | utf8mb4 |

| character_set_database | utf8mb4 |

| character_set_filesystem | binary |

| character_set_results | utf8mb4 |

| character_set_server | utf8mb4 |

| character_set_system | utf8 |

| collation_connection | utf8mb4_unicode_ci |

| collation_database | utf8mb4_unicode_ci |

| collation_server | utf8mb4_unicode_ci |

+--------------------------+--------------------+

Ngemuva kokudala i-database entsha ku-phpMyAdmin, kufaneleBuka ikhodi egciniwe ▼

SHOW CREATE DATABASE db_name;
  • Njenge:SHOW CREATE DATABASE test;

Uma i-database encoding ingekhoutf8mb4, kufanele uguqule uhlamvu lwesizindalwazi olusethwe ukuzeutf8mb4 ,

Ungalushintsha kanjani uhlamvu lwesizindalwazi olusethwe ku-utf8mb4?

Isinyathelo 1: Chofoza igama lesizindalwazi samanje ku-phpMyAdmin, bese uchofoza SQL.

Isinyathelo sesi-2: Faka umyalo olandelayo ukuze ulungise uhlamvu lwesizindalwazi olusethwe kuloutf8mb4

ALTER DATABASE db_name DEFAULT CHARACTER SET utf8mb4
  • Njenge:ALTER DATABASE test DEFAULT CHARACTER SET utf8mb4;

Isinyathelo sesi-3:Qala kabusha i-database ye-MySQL

service mysqld restart
  • Yilokho kuphela.

Nazi ezinye izibonelo zemiyalo ye-SQL:

Shintsha isethi yezinhlamvu ezimisiwe kanye nawo wonke amakholomu ezinhlamvu zethebula zibe isethi yohlamvu olusha ▼

ALTER TABLE tbl_name CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8_general_ci;
  • Njenge:ALTER TABLE logtest CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8_general_ci;

Uma uguqula kuphela isethi yezinhlamvu ezimisiwe zethebula▼

ALTER TABLE tbl_name  DEFAULT CHARACTER SET utf8mb4 COLLATE utf8_general_ci;
  • Njenge:ALTER TABLE logtest DEFAULT CHARACTER SET utf8mb4 COLLATE utf8_general_ci;

Lungisa isethi yezinhlamvu zenkambu ▼

ALTER TABLE tbl_name CHANGE c_name c_name CHARACTER SET character_name 
  • Njenge:ALTER TABLE logtest CHANGE title title VARCHAR(100) CHARACTER SET utf8 COLLATE utf8_general_ci;

Buka ikhodi yethebula ▼

SHOW CREATE TABLE tbl_name;

Buka Amakhodi Enkundla ▼

SHOW FULL COLUMNS FROM tbl_name;

Buka ikhodi yedatha yamanje ▼

SHOW VARIABLES LIKE 'character_set_%';
  • Iphakheji yomshayeli we-mysql-connector-java isekela kuphela utf5.1.13mb8 ku-4+

发表 评论

Ikheli lakho le-imeyili ngeke lishicilelwe. 必填 项 已 用 * Ilebula

Skrolela Top