ايموجي کي MySQL ۾ ڪيئن محفوظ ڪجي؟

جيڪڏهن ايموجي اظهار utf8 انڪوڊنگ ۾ ذخيرو ٿيل آهيMySQL ڊيٽابيسيا ماريا ڊي بي، اهو ڏيکاري نٿو سگهجي.

ڊيٽابيس ۾ داخل ٿيل ايموجي ايڪسپريس ڇو ٿي سواليا نشان وارو ڪردار؟

ڇاڪاڻ ته ايموجي ايڪسپريشنز 4-بائيٽ اکر آهن، ۽ utf8 ڪردار سيٽ صرف 1-3 بائيٽ جي اکرن کي سپورٽ ڪري ٿو، ايموجي ايڪسپريشن کي ڊيٽابيس ۾ نه ٿو لکي سگهجي.

انهي مسئلي کي ڪيئن حل ڪجي ته ڊيٽابيس ۾ ايمجسي ايڪسپريس سواليا نشان وارو ڪردار بڻجي وڃي؟

اتي 2 حل آهن:

  1. دستي طور تي ٽيڪسٽ داخل ڪريو، چار بائيٽ اکرن کي تبديل ڪري، ڪسٽم اکرن سان.
  2. تبديل ڪريو هن MySQL ڊيٽابيس جي ڪردار جي سيٽ، ڊيٽابيس جي ڪردار جي سيٽ کي utf8 کان utf8mb4 ۾ تبديل ڪريو، 1-4 بائيٽ ڪردارن کي سپورٽ ڪريو.

حقيقت ۾، پهريون طريقو تمام گهڻو ڪم آهي ۽ مشورو نه آهي.

اهو ٻيو حل استعمال ڪرڻ جي صلاح ڏني وئي آهي، تبديل ڪريو MySQL ڊيٽابيس ڪردار سيٽ.

MySQL 5.5.3 ورزن کان شروع ڪندي، ڊيٽابيس 4 بائيٽ جي utf8mb4 ڪردار سيٽ کي سپورٽ ڪري سگهي ٿي، ۽ هڪ ڪردار 4 بائيٽ تائين ٿي سگهي ٿو، تنهنڪري اهو وڌيڪ ڪردارن جي سيٽ کي سپورٽ ڪري سگهي ٿو، ۽ پڻ Emoji ايڪسپريشن کي محفوظ ڪري سگهي ٿو.

  • 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

قدم 3: چيڪ ڪريو ڪردار سيٽ ٻيهر ۽ داخل ڪريو ▼ 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 ڊرائيور پيڪيج صرف utf5.1.13mb8 کي سپورٽ ڪري ٿو 4+ ۾

اميد چن ويلانگ بلاگ ( https://www.chenweiliang.com/ ) شيئر ڪيو "ايموجي کي MySQL ۾ ڪيئن محفوظ ڪجي؟ ڊيٽابيس ۾ داخل ڪريو ايموجي ايڪسپريشن سوال نشان ڪردار جو مسئلو"، جيڪو توهان لاءِ مددگار آهي.

هن آرٽيڪل جي لنڪ کي حصيداري ڪرڻ لاء ڀليڪار:https://www.chenweiliang.com/cwl-26592.html

وڌيڪ لڪيل چالون کولڻ لاءِ🔑، اسان جي ٽيليگرام چينل ۾ شامل ٿيڻ لاءِ ڀليڪار!

شئير ڪريو ۽ پسند ڪريو جيڪڏھن توھان کي پسند اچي! توهان جا حصا ۽ پسند اسان جي مسلسل حوصلا آهن!

 

发表 评论

توهان جو اي ميل پتو شايع نه ڪيو ويندو. 必填 项 已 用 * ليبل

جي ويڙھيء وانگي امروٽي