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

Eger emojî di databasa MySQL an databasa MariaDB de bi kodkirina UTF-8 werin hilanîn, ew ê neyên nîşandan.

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

Pêngava 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î çêkirina databeseke nû di phpMyAdmin de, divê hûn kodkirina databesê kontrol bikin. ▼

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;

Pêngava 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

评论

您的邮箱地址不会被公开。必填项已用*标注

Scroll to Top