Ahoana ny fomba hamonjena ny Emoji ao amin'ny MySQL?

Raha voatahiry ao amin'ny utf8 ny fitenenana EmojiMySQL databasena MariaDB, tsy azo aseho izany.

Nahoana no lasa toetran'ny marika fanontaniana ny fitenenana Emoji niditra tao amin'ny tahiry?

Satria tarehintsoratra 4-byte ny fitenenana Emoji, ary ny tarehin-tsoratra utf8 dia tsy manohana afa-tsy 1-3 litatra amin'ny endri-tsoratra, tsy azo soratana ao anaty angon-drakitra ny fanehoana Emoji.

Ahoana no hamahana ny olana izay ny fanehoan-kevitra Emoji niditra tao amin'ny angon-drakitra lasa toetra marika fanontaniana?

Misy vahaolana 2:

  1. Mampidira lahatsoratra amin'ny tanana, manolo tarehintsoratra efatra-byte amin'ny tarehin-tsoratra mahazatra.
  2. manova MySQL Ny tarehin-tsoratra momba ny database, ovay ny tarehintsoratra database avy amin'ny utf8 ho utf8mb4, tohano ny tarehintsoratra 1-4 byte.

Raha ny marina, ny fomba voalohany dia asa be loatra ary tsy mety.

Amporisihina ny hampiasa ny vahaolana faharoa, ovay ny endri-tsoratra MySQL database.

Manomboka amin'ny MySQL 5.5.3, ny angon-drakitra dia afaka manohana ny andian-tsoratra utf4mb8 amin'ny 4 bytes, ary ny toetra iray dia afaka manana hatramin'ny 4 bytes, mba hahafahany manohana andiana endri-tsoratra bebe kokoa, ary afaka mitahiry ireo fanehoana Emoji.

  • Aorian'ny MySQL 5.5.3, azonao atao ny manavao amin'ny fomba tsy misy dikany amin'ny andian-tsoratra utf8mb4.
  • Mandritra izany fotoana izany, ny utf8mb4 dia mifanaraka amin'ny andian-tsoratra utf8.
  • Ny kaody, ny toerana ary ny fitehirizana ny tarehintsoratra utf8 dia ao amin'ny utf8mb4.
  • Mitovy amin'ny andian-tsoratra utf8, tsy misy fahasimbana amin'ny angon-drakitra efa misy.

Noho nyphpMyAdminHo an'ny latabatra vao noforonina ao amin'ny angon-drakitra vao noforonina, ny fanovàna endri-tsoratra default dia:Latin1

  • Tsy afaka mampiditra teny sinoa sy Emoji io fandrafetana io;
  • Mila ovainao amin'ny utf8mb4 ny kaody an-tsoratra amin'ny andian-tsoratra sy ny latabatra;
  • Avy eo, avereno indray ny MySQL, azonao atao ny mampiditra teny sinoa sy Emoji.

MySQL Emoji vahaolana olana

Dingana 1:Ovao ny fichier configuration MySQL my.cnf

  • (Windows server is my.ini,LinuxNy mpizara dia my.cnf)
  • my.cnf rakitra, matetika in/etc/mysql/my.cnftoerana.
  • CWP Control PanelNy rakitra my.cnf dia ao/etc/my.cnftoerana.

Rehefa hitanao izany dia ampio ity atiny manaraka ity ao amin'ny fizarana telo manaraka ▼

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

Dingana 2:Avereno indray ny angon-drakitra MySQL

service mysqld restart

Dingana 3: Jereo indray ny endri-tsoratra ary ampidiro ny ▼ ao amin'ny andalana baiko SQL

SHOW VARIABLES WHERE Variable_name LIKE 'character_set_database';

Jereo raha ireto manaraka ireto ▼

Ahoana ny fomba hamonjena ny Emoji ao amin'ny MySQL?

Ampidiro ity baiko SQL manaraka ity ▼

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

Jereo raha toa ka toy izao manaraka izao ▼

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

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

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

Rehefa avy namorona angona vaovao ao amin'ny phpMyAdmin ianao dia tsy maintsyJereo ny code database ▼

SHOW CREATE DATABASE db_name;
  • Toy ny:SHOW CREATE DATABASE test;

Raha tsy misy ny encoding databaseutf8mb4, tsy maintsy ovainao ny toetran'ny database napetraka houtf8mb4 .

Ahoana ny fomba hanovana ny toetran'ny database ho utf8mb4?

Dingana 1: Kitiho ny anaran'ny angona ankehitriny ao amin'ny phpMyAdmin, ary tsindrio SQL.

Dingana 2: Ampidiro ity baiko manaraka ity hanovana ny toetran'ny database napetrakautf8mb4

ALTER DATABASE db_name DEFAULT CHARACTER SET utf8mb4
  • Toy ny:ALTER DATABASE test DEFAULT CHARACTER SET utf8mb4;

Dingana 3:Avereno indray ny angon-drakitra MySQL

service mysqld restart
  • Dia izay.

Ireto misy ohatra vitsivitsy amin'ny baiko SQL:

Ovay ny fitambaran'ny endri-tsoratra default sy ny tsanganana rehetra amin'ny latabatra ho amin'ny andian-toetra vaovao ▼

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

Raha ovainao fotsiny ny endri-tsoratra mahazatra amin'ny latabatra▼

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

Ovao ny andian-toetran'ny saha ▼

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

Jereo ny kaody latabatra ▼

SHOW CREATE TABLE tbl_name;

Jereo ny kaody saha ▼

SHOW FULL COLUMNS FROM tbl_name;

Jereo ny kaody database ankehitriny ▼

SHOW VARIABLES LIKE 'character_set_%';
  • Ny fonosana mpamily mysql-connector-java dia tsy manohana afa-tsy utf5.1.13mb8 amin'ny 4+

Hope Chen Weiliang Blog ( https://www.chenweiliang.com/ ) nizara ny "Ahoana ny fomba hamonjena an'i Emoji ao amin'ny MySQL? Ampidiro ao amin'ny database Emoji expression question mark character problem", izay manampy anao.

Tongasoa eto mizara ny rohy amin'ity lahatsoratra ity:https://www.chenweiliang.com/cwl-26592.html

Raha te hanokatra fika miafina 🔑, tongasoa eto amin'ny fantsona Telegramy!

Partageo ary j'aime raha tianao! Ny anjaranao sy ny j'aime no antony manosika anay hatrany!

 

Comments

Tsy havoaka ny adiresy mailakao. Ampiasaina ny saha ilaina * Label

Horonana Top