Meriv çawa Emoji di MySQL de tomar dike? Têkeve Pirsgirêka karaktera nîşana pirsê ya îfadeya Emoji ya databasê

Ger îfadeya Emoji di şîfrekirina utf8 de were hilanînDatabasa MySQLan MariaDB, ew nikare were xuyang kirin.

Çima îfadeya Emoji ya ku ketiye databasê dibe karakterek nîşana pirsê?

Ji ber ku biwêjên Emoji tîpên 4-byte ne, û koma karaktera utf8 tenê 1-3 byte karakteran piştgirî dike, îfadeyên Emoji di databasê de nayên nivîsandin.

Meriv çawa pirsgirêka ku îfadeya Emoji ketiye databasê dibe karakterek nîşana pirsê çareser bike?

2 çareserî hene:

  1. Nivîsar bi destan têkevin, li şûna tîpên çar-byte bi tîpên xwerû.
  2. gûhertin MySQL Komek karaktera databasê, komek karaktera databasê ji utf8 berbi utf8mb4 biguhezînin, karakterên 1-4 bayt piştgirî bikin.

Bi rastî, rêbaza yekem pir kedkar e û ne şîret e.

Tête pêşniyar kirin ku çareseriya duyemîn bikar bînin, komek karaktera databasa MySQL biguherînin.

Ji guhertoya MySQL 5.5.3 dest pê dike, databas dikare komek karaktera utf4mb8 ya 4 byte piştgirî bike, û karekterek dikare heya 4 byte hebe, ji ber vê yekê ew dikare bêtir komên karakteran piştgirî bike, û her weha dikare bêjeyên Emoji hilîne.

  • Piştî MySQL 5.5.3, hûn di bingeh de dikarin bêkêmasî li koma karaktera utf8mb4 nûve bikin.
  • Di heman demê de, utf8mb4 bi koma karaktera utf8 re hevaheng e.
  • Şîfrekirin, cih û hilanîna tîpên utf8 di utf8mb4 de ne.
  • Heman koma karaktera utf8, zirarê nade daneyên heyî.

Bi hecetaphpMyAdminJi bo tabloyên ku nû hatine afirandin di danegehek nû hatî afirandin de, kodkirina karaktera xwerû ev e:Latin1

  • Ev şîfrekirin nikare bêjeyên Çînî û Emoji têxe nav;
  • Pêdivî ye ku hûn şîfrekirina koma karakterê ya koma karakter û tabloya databasê biguherînin utf8mb4;
  • Dûv re, MySQL ji nû ve bidin destpêkirin, hûn dikarin bêjeyên Çînî û Emoji têxin nav xwe.

Çareseriya pirsgirêka karaktera MySQL Emoji

Gav 1:Pelê mîhengê MySQL my.cnf biguherîne

  • (Pêşkêşkara Windows my.ini ye,LinuxPêşkêşkar my.cnf e)
  • pelê my.cnf, bi gelemperî tê de/etc/mysql/my.cnfCîh.
  • Panela Kontrolê ya CWPPelê my.cnf, tê de ye/etc/my.cnfCîh.

Piştî ku hûn wê bibînin, ji kerema xwe naveroka jêrîn li sê beşên jêrîn zêde bikin ▼

[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'

Gav 2:Databasa MySQL ji nû ve bidin destpêkirin

service mysqld restart

Gav 3: Koma karakterê dîsa kontrol bikin û di rêza fermana SQL de ▼ binivîsin

SHOW VARIABLES WHERE Variable_name LIKE 'character_set_database';

Kontrol bikin ka jêrîn ▼

Meriv çawa Emoji di MySQL de tomar dike? Têkeve Pirsgirêka karaktera nîşana pirsê ya îfadeya Emoji ya databasê

Fermana SQL ya jêrîn binivîsin▼

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

Kontrol bikin ka ew wekî jêrîn e▼

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

| 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 |

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

Piştî afirandina databasek nû di phpMyAdmin de, divê hûnKoda databasê bibînin ▼

SHOW CREATE DATABASE db_name;
  • Wekî:SHOW CREATE DATABASE test;

Ger şîfrekirina databasê nebeutf8mb4, divê hûn karektera databasê biguherîninutf8mb4 .

Meriv çawa karaktera databasê li utf8mb4 biguhezîne?

Gav 1: Navê databasa heyî li phpMyAdmin bikirtînin, dûv re SQL bikirtînin.

Gav 2: Fermana jêrîn têkevin da ku karektera databasê biguhezîninutf8mb4

ALTER DATABASE db_name DEFAULT CHARACTER SET utf8mb4
  • Wekî:ALTER DATABASE test DEFAULT CHARACTER SET utf8mb4;

Gav 3:Databasa MySQL ji nû ve bidin destpêkirin

service mysqld restart
  • Her eve.

Li vir çend mînakên fermanên SQL hene:

Koma karaktera xwerû û hemî stûnên karakterên tabloyê biguhezînin koma karaktera nû ▼

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

Ger hûn tenê rêzika karaktera xwerû ya tabloyê biguherînin ▼

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

Komek karakterên qada ▼ biguherînin

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

Koda tabloyê bibînin ▼

SHOW CREATE TABLE tbl_name;

Kodên Qadan bibînin ▼

SHOW FULL COLUMNS FROM tbl_name;

Koda databasa heyî ▼ bibînin

SHOW VARIABLES LIKE 'character_set_%';
  • Pakêta ajokerê mysql-connector-java tenê di 5.1.13+ de utf8mb4 piştgirî dike

评论

Navnîşana e-nameya we nayê weşandin. Zeviyên pêdivî têne bikar anîn * Awanasî

Scroll to Top