Kif issalva l-Emoji fil-MySQL? Daħħal id-database Emoji espressjoni problema tal-karattru tal-marka tal-mistoqsija

Jekk l-espressjonijiet Emoji huma maħżuna f'kodifikazzjoni utf8database MySQLjew MariaDB, ma jistax jintwera.

Għaliex l-espressjoni Emoji mdaħħla fid-database tinbidel f'karattru ta' mistoqsija?

Minħabba li l-espressjonijiet Emoji huma karattri ta '4 byte, u s-sett ta' karattri utf8 jappoġġja biss karattri ta '1-3 byte, l-espressjonijiet Emoji ma jistgħux jinkitbu fid-database.

Kif issolvi l-problema li l-espressjonijiet Emoji inbidlu f'karattri ta' mistoqsija meta ddaħħlu fid-database?

Hemm 2 soluzzjonijiet:

  1. Daħħal it-test manwalment, filwaqt li tissostitwixxi karattri ta' erba' byte b'karattri personalizzati.
  2. immodifika MySQL Sett ta 'karattri tad-database, ibdel is-sett ta' karattri tad-database minn utf8 għal utf8mb4, li jappoġġja karattri ta '1-4 byte.

Fil-fatt, l-ewwel metodu jeħtieġ wisq xogħol u mhux rakkomandabbli.

Huwa rakkomandat li tuża t-tieni soluzzjoni biex timmodifika s-sett ta 'karattri tad-database MySQL.

Tibda mill-verżjoni MySQL 5.5.3, id-database tista 'tappoġġja s-sett ta' karattri utf4mb8 ta '4 byte, u karattru jista' jkollu sa 4 bytes, u għalhekk jista 'jappoġġa aktar settijiet ta' karattri u jaħżen espressjonijiet Emoji.

  • Wara MySQL 5.5.3, bażikament jista 'jiġi aġġornat bla xkiel għas-sett ta' karattri utf8mb4.
  • Fl-istess ħin, utf8mb4 huwa kompatibbli mas-sett ta 'karattri utf8.
  • Il-kodifikazzjoni, il-pożizzjoni u l-ħażna tal-karattri utf8 huma f'utf8mb4.
  • L-istess sett ta 'karattri bħal utf8 u mhux se jikkawża ħsara lid-dejta eżistenti.

Għax fiphpMyAdminGħal tabelli maħluqa ġodda f'databases maħluqa ġodda, il-kodifikazzjoni tal-karattri default hija:Latin1

  • Din il-kodifikazzjoni ma tistax tiddaħħal espressjonijiet Ċiniżi u Emoji;
  • Huwa meħtieġ li tinbidel is-sett ta 'karattri tad-database u l-kodifikazzjoni tas-sett ta' karattri tat-tabella għal utf8mb4;
  • Imbagħad, terġa 'tibda MySQL u tista' daħħal espressjonijiet Ċiniżi u Emoji.

Soluzzjoni tal-problema tal-karattru MySQL Emoji

Pass 1:Immodifika l-fajl tal-konfigurazzjoni MySQL my.cnf

  • (my.ini għal servers Windows,LinuxIs-server huwa my.cnf)
  • fajl my.cnf, normalment fi/etc/mysql/my.cnfPost.
  • Panel tal-Kontroll tas-CWPIl-fajl my.cnf jinsab fi/etc/my.cnfPost.

Wara li ssibha, jekk jogħġbok żid il-kontenut li ġej fit-tliet partijiet li ġejjin ▼

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

Pass 2:Ibda mill-ġdid id-database MySQL

service mysqld restart

Pass 3: Iċċekkja s-sett ta 'karattri mill-ġdid u daħħal ▼ fil-linja tal-kmand SQL

SHOW VARIABLES WHERE Variable_name LIKE 'character_set_database';

Iċċekkja jekk huwiex kif ġej ▼

Kif issalva l-Emoji fil-MySQL? Daħħal id-database Emoji espressjoni problema tal-karattru tal-marka tal-mistoqsija

Daħħal il-kmand SQL li ġej▼

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

Iċċekkja jekk huwiex kif ġej▼

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

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

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

Wara li toħloq database ġdida f'phpMyAdmin, tridAra l-kodifikazzjoni tad-database ▼

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

Jekk il-kodifikazzjoni tad-database mhixutf8mb4, is-sett ta' karattri tad-database għandu jiġi modifikat għalutf8mb4 .

Kif timmodifika s-sett ta' karattri tad-database għal utf8mb4?

Pass 1: Ikklikkja fuq l-isem tad-database attwali f'phpMyAdmin, imbagħad ikklikkja fuq SQL.

Pass 2: Daħħal il-kmand li ġej biex timmodifika s-sett ta' karattri tad-databaseutf8mb4

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

Pass 3:Ibda mill-ġdid id-database MySQL

service mysqld restart
  • Dak hu.

Hawn huma xi eżempji ta' kmand SQL:

Ibdel is-sett ta' karattri default u l-kolonni kollha tal-karattri tat-tabella għas-sett ta' karattri l-ġdid ▼

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

Jekk timmodifika biss is-sett ta' karattri default tat-tabella▼

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

Immodifika s-sett ta' karattri ta' qasam ▼

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

Ara l-kodiċi tat-tabella ▼

SHOW CREATE TABLE tbl_name;

Ara l-kodifikazzjoni tal-qasam ▼

SHOW FULL COLUMNS FROM tbl_name;

Ara l-kodifikazzjoni tad-database attwali ▼

SHOW VARIABLES LIKE 'character_set_%';
  • Il-pakkett tas-sewwieq mysql-connector-java jappoġġja biss utf5.1.13mb8 f'4+

发表 评论

您的邮箱地址不会被公开。 Jintużaw l-oqsma meħtieġa * Tikketta

Skrollja Top