Ինչպե՞ս պահպանել Emoji-ն MySQL-ում Մուտքագրեք տվյալների բազայի Emoji արտահայտության հարցական նշանի խնդիր

Եթե ​​Emoji արտահայտությունը պահվում է utf8 կոդավորման մեջMySQL տվյալների բազակամ MariaDB, այն չի կարող ցուցադրվել:

Ինչու՞ է տվյալների բազա մուտքագրված Emoji արտահայտությունը դառնում հարցական նշան:

Քանի որ Էմոջի արտահայտությունները 4 բայթանոց նիշեր են, և utf8 նիշերի հավաքածուն աջակցում է միայն 1-3 բայթ նիշ, Էմոջի արտահայտությունները չեն կարող գրվել տվյալների բազայում:

Ինչպե՞ս լուծել այն խնդիրը, որ տվյալների բազա մուտքագրված Emoji արտահայտությունը դառնում է հարցական նշան:

2 լուծում կա.

  1. Մուտքագրեք տեքստը ձեռքով, փոխարինելով չորս բայթ նիշերը հատուկ նիշերով:
  2. փոփոխել MySQL Տվյալների բազայի նիշերի հավաքածու, փոխեք տվյալների բազայի նիշերի հավաքածուն utf8-ից utf8mb4, աջակցեք 1-4 բայթ նիշ:

Իրականում, առաջին մեթոդը չափազանց մեծ աշխատանք է և նպատակահարմար չէ:

Խորհուրդ է տրվում օգտագործել երկրորդ լուծումը՝ փոփոխել MySQL տվյալների բազայի նիշերի հավաքածուն։

Սկսած MySQL 5.5.3 տարբերակից, տվյալների բազան կարող է աջակցել utf4mb8 նիշերի հավաքածուն 4 բայթ, իսկ նիշը կարող է ունենալ մինչև 4 բայթ, այնպես որ այն կարող է աջակցել ավելի շատ նիշերի հավաքածուներ, ինչպես նաև կարող է պահել Emoji արտահայտությունները:

  • MySQL 5.5.3-ից հետո դուք հիմնականում կարող եք անխափան կերպով թարմացնել utf8mb4 նիշերի հավաքածուն:
  • Միևնույն ժամանակ, utf8mb4-ը համատեղելի է utf8 նիշերի հավաքածուի հետ:
  • utf8 նիշերի կոդավորումը, դիրքը և պահպանումը գտնվում են utf8mb4-ում:
  • Նույնը, ինչ utf8 նիշերի հավաքածուն, գոյություն ունեցող տվյալներին վնաս չկա:

ՇնորհիվphpMyAdminՆոր ստեղծված տվյալների բազայում նոր ստեղծված աղյուսակների համար լռելյայն նիշերի կոդավորումն է.Latin1

  • Այս կոդավորումը չի կարող զետեղել չինարեն և էմոջի արտահայտություններ.
  • Դուք պետք է փոխեք տվյալների բազայի նիշերի հավաքածուի և աղյուսակի նիշերի հավաքածուի կոդավորումը utf8mb4;
  • Այնուհետև, վերագործարկեք MySQL-ը, կարող եք տեղադրել չինարեն և Էմոջի արտահայտություններ:

MySQL Emoji նիշերի խնդրի լուծում

第 1 步:Փոփոխեք MySQL կազմաձևման ֆայլը my.cnf

  • (Windows սերվերը my.ini է,LinuxՍերվերը my.cnf է)
  • my.cnf ֆայլը, սովորաբար/etc/mysql/my.cnfդիրք.
  • CWP Control Panelmy.cnf ֆայլը գտնվում է/etc/my.cnfդիրք.

Այն գտնելուց հետո խնդրում ենք ավելացնել հետևյալ բովանդակությունը հետևյալ երեք մասերում՝ ▼

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

第 2 步:Վերագործարկեք MySQL տվյալների բազան

service mysqld restart

Քայլ 3. Կրկին ստուգեք նիշերի հավաքածուն և մուտքագրեք ▼ SQL հրամանի տողում

SHOW VARIABLES WHERE Variable_name LIKE 'character_set_database';

Ստուգեք, արդյոք հետևյալ ▼

Ինչպե՞ս պահպանել Emoji-ն MySQL-ում Մուտքագրեք տվյալների բազայի Emoji արտահայտության հարցական նշանի խնդիր

Մուտքագրեք հետևյալ SQL հրամանը ▼

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

Ստուգեք, արդյոք դա հետևյալն է ▼

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

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

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

phpMyAdmin-ում նոր տվյալների բազա ստեղծելուց հետո դուք պետք էԴիտեք տվյալների բազայի կոդը ▼

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

Եթե ​​տվյալների բազայի կոդավորումը չէutf8mb4, դուք պետք է փոփոխեք տվյալների բազայի նիշը, որը սահմանված էutf8mb4 .

Ինչպե՞ս փոփոխել տվյալների բազայի նիշերը utf8mb4-ի:

Քայլ 1. Սեղմեք ընթացիկ տվյալների բազայի անունը phpMyAdmin-ում, այնուհետև սեղմեք SQL:

Քայլ 2. Մուտքագրեք հետևյալ հրամանը՝ փոփոխելու տվյալների բազայի նիշըutf8mb4

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

第 3 步:Վերագործարկեք MySQL տվյալների բազան

service mysqld restart
  • վերջ։

Ահա SQL հրամանների մի քանի օրինակներ.

Փոխեք նիշերի լռելյայն հավաքածուն և աղյուսակի բոլոր նիշերի սյունակները նոր նիշերի ▼

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;

Եթե ​​դուք միայն փոփոխում եք աղյուսակի լռելյայն նիշերի հավաքածուն ▼

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

Փոփոխել ▼ դաշտի նիշերի հավաքածուն

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;

Դիտել աղյուսակի կոդը ▼

SHOW CREATE TABLE tbl_name;

Դիտեք դաշտերի կոդերը ▼

SHOW FULL COLUMNS FROM tbl_name;

Դիտեք տվյալների բազայի ընթացիկ կոդը ▼

SHOW VARIABLES LIKE 'character_set_%';
  • Mysql-connector-java վարորդի փաթեթն աջակցում է միայն utf5.1.13mb8 4+-ում:

Հույս Chen Weiliang բլոգ ( https://www.chenweiliang.com/ ) կիսվել է «Ինչպե՞ս պահպանել Emoji-ն MySQL-ում: Մուտքագրեք տվյալների բազայի Emoji արտահայտությունը հարցական նշանի խնդիր», որն օգտակար է ձեզ համար:

Բարի գալուստ՝ կիսելու այս հոդվածի հղումը.https://www.chenweiliang.com/cwl-26592.html

Բարի գալուստ Chen Weiliang-ի բլոգի Telegram ալիք՝ վերջին թարմացումները ստանալու համար:

🔔 Եղեք առաջինը, ով կստանա արժեքավոր «ChatGPT բովանդակության շուկայավարման AI գործիքի օգտագործման ուղեցույցը» ալիքի վերին գրացուցակում: 🌟
📚 Այս ուղեցույցը պարունակում է հսկայական արժեք, 🌟Սա հազվագյուտ հնարավորություն է, բաց մի՛ թողեք այն։ ⏰⌛💨
Տարածեք և հավանեք, եթե հավանեցիք:
Ձեր տարածումը և հավանումները մեր շարունակական շարժառիթն են:

 

发表 评论

Ձեր էլ. Փոստի հասցեն չի հրապարակվի: Օգտագործվում են պահանջվող դաշտերը * Պիտակ

ոլորել դեպի վերև