ایموجي په 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

د وروستي تازه معلوماتو ترلاسه کولو لپاره د چن ویلیانګ بلاګ ټیلیګرام چینل ته ښه راغلاست!

🔔 د چینل غوره لارښود کې د ارزښتناکه "ChatGPT مینځپانګې بازار موندنې AI وسیلې کارولو لارښود" ترلاسه کولو لپاره لومړی اوسئ! 🌟
📚 دا لارښود لوی ارزښت لري، 🌟دا یو نادر فرصت دی، له لاسه مه ورکوئ! ⏰⌛💨
که مو خوښه شوه لایک او شریک کړئ!
ستاسو شریکول او خوښول زموږ دوامداره هڅونه ده!

 

评论 评论

ستاسو د بریښنالیک آدرس به نشر نشي اړین ساحې کارول کیږي * لیبل

پورته ته سکرول