ایموجي په MySQL کې څنګه خوندي کړو؟

که د ایموجي اظهار په utf8 کوډ کولو کې زیرمه شوی ويد MySQL ډیټابیسیا MariaDB، دا نشي ښودل کیدی.

ولې ډیټابیس ته د ایموجي بیان د پوښتنې نښه نښه بدلیږي؟

ځکه چې د ایموجي څرګندونې د 4 بایټ حروف دي، او د utf8 کرکټر سیټ یوازې د 1-3 بایټ حروف ملاتړ کوي، د ایموجي څرګندونې په ډیټابیس کې نشي لیکل کیدی.

د دې ستونزې حل کولو څرنګوالی چې ډیټابیس ته د ایموجي بیان د پوښتنې نښه نښه بدلیږي؟

دوه حلونه شتون لري:

  1. متن په لاسي ډول دننه کړئ، د څلور بایټ حروف د دودیز حروفونو سره ځای په ځای کړئ.
  2. بدلول مای د ډیټابیس کرکټر سیټ، د ډیټابیس کرکټر سیټ له utf8 څخه utf8mb4 ته بدل کړئ، د 1-4 بایټ کریکټ ملاتړ وکړئ.

په حقیقت کې، لومړی میتود ډیر کار دی او د مشورې وړ نه دی.

دا سپارښتنه کیږي چې دوهم حل وکاروئ ، د MySQL ډیټابیس کرکټر سیټ بدل کړئ.

د MySQL 5.5.3 نسخې څخه پیل کول، ډیټابیس کولی شي د 4 بایټس utf8mb4 کریکټ سیټ ملاتړ وکړي، او یو کرکټر تر 4 بایټ پورې کیدی شي، نو دا کولی شي د نورو کرکټرونو سیټونو ملاتړ وکړي، او همدارنګه کولی شي د ایموجي څرګندونې ذخیره کړي.

  • د MySQL 5.5.3 وروسته، تاسو کولی شئ اساسا په بې ساري ډول د utf8mb4 کرکټر سیټ ته لوړ کړئ.
  • په ورته وخت کې، utf8mb4 د utf8 کرکټر سیټ سره مطابقت لري.
  • د utf8 حروف کوډ کول، موقعیت او ذخیره کول په utf8mb4 کې دي.
  • د utf8 کریکټ سیټ په څیر، موجوده ډاټا ته هیڅ زیان نشته.

لدې املهphpMyAdminپه نوي جوړ شوي ډیټابیس کې د نوي جوړ شوي میزونو لپاره، د اصلي کرکټر کوډ کول دي:Latin1

  • دا کوډ کول نشي کولی چینایي او ایموجي څرګندونې داخل کړي؛
  • تاسو اړتیا لرئ د ډیټابیس کرکټر سیټ او جدول utf8mb4 ته د کرکټر سیټ کوډ کولو بدل کړئ؛
  • بیا، MySQL بیا پیل کړئ، تاسو کولی شئ چینایي او ایموجي څرګندونې داخل کړئ.

د MySQL Emoji کرکټر ستونزې حل

په 1 کې:د MySQL تشکیلاتو فایل بدل کړئ my.cnf

  • (د وینډوز سرور my.ini دی،لینوکسسرور my.cnf دی)
  • my.cnf فایل، معمولا په کې/etc/mysql/my.cnfځای.
  • د CWP کنټرول پینلد my.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

دریم ګام: د کرکټر سیټ بیا چیک کړئ او د SQL کمانډ لاین کې ▼ دننه کړئ

SHOW VARIABLES WHERE Variable_name LIKE 'character_set_database';

وګوره که لاندې ▼

ایموجي په MySQL کې څنګه خوندي کړو؟

لاندې 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 ډرایور کڅوړه یوازې په 5.1.13+ کې utf8mb4 ملاتړ کوي

امید چن وییلینګ بلاګ ( https://www.chenweiliang.com/ ) شریک کړ " څنګه په MySQL کې ایموجي خوندي کړو؟ ډیټابیس کې د ایموجي څرګندونې پوښتنې نښه کرکټر ستونزه داخل کړئ"، کوم چې ستاسو لپاره ګټور دی.

د دې مقالې لینک شریکولو ته ښه راغلاست:https://www.chenweiliang.com/cwl-26592.html

د نورو پټو چلونو د خلاصولو لپاره، زموږ د ټیلیګرام چینل سره یوځای کیدو ته ښه راغلاست!

که مو خوښه شوه لایک او شریک کړئ! ستاسو شریکول او خوښول زموږ دوامداره هڅونه ده!

 

评论 评论

ستاسو بریښنالیک پته به خپره نشي. اړین ساحې کارول کیږي * لیبل

پاس شئ