آرٽيڪل ڊاريڪٽري
جيڪڏهن ايموجي اظهار utf8 انڪوڊنگ ۾ ذخيرو ٿيل آهيMySQL ڊيٽابيسيا ماريا ڊي بي، اهو ڏيکاري نٿو سگهجي.
ڊيٽابيس ۾ داخل ٿيل ايموجي ايڪسپريس ڇو ٿي سواليا نشان وارو ڪردار؟
ڇاڪاڻ ته ايموجي ايڪسپريشنز 4-بائيٽ اکر آهن، ۽ utf8 ڪردار سيٽ صرف 1-3 بائيٽ جي اکرن کي سپورٽ ڪري ٿو، ايموجي ايڪسپريشن کي ڊيٽابيس ۾ نه ٿو لکي سگهجي.
انهي مسئلي کي ڪيئن حل ڪجي ته ڊيٽابيس ۾ ايمجسي ايڪسپريس سواليا نشان وارو ڪردار بڻجي وڃي؟
اتي 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';
چيڪ ڪريو ته هيٺ ڏنل ▼

ھيٺ ڏنل 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
وڌيڪ لڪيل چالون کولڻ لاءِ🔑، اسان جي ٽيليگرام چينل ۾ شامل ٿيڻ لاءِ ڀليڪار!
شئير ڪريو ۽ پسند ڪريو جيڪڏھن توھان کي پسند اچي! توهان جا حصا ۽ پسند اسان جي مسلسل حوصلا آهن!