लेख निर्देशिका
यदि इमोजी एक्सप्रेशन को utf8 एन्कोडिंग में संग्रहीत किया जाता हैMySQL डेटाबेसया मारियाडीबी, इसे प्रदर्शित नहीं किया जा सकता है।
डेटाबेस में दर्ज किया गया इमोजी एक्सप्रेशन प्रश्न चिह्न वर्ण क्यों बन जाता है?
क्योंकि इमोजी एक्सप्रेशन 4-बाइट वर्ण हैं, और utf8 वर्ण सेट केवल 1-3 बाइट्स वर्णों का समर्थन करता है, इमोजी एक्सप्रेशन को डेटाबेस में नहीं लिखा जा सकता है।
इस समस्या को कैसे हल करें कि डेटाबेस में दर्ज इमोजी एक प्रश्न चिह्न वर्ण बन जाता है?
2 समाधान हैं:
- कस्टम वर्णों के साथ चार-बाइट वर्णों को प्रतिस्थापित करते हुए, मैन्युअल रूप से टेक्स्ट दर्ज करें।
- परिवर्तन MySQL डेटाबेस वर्ण सेट, डेटाबेस वर्ण सेट को 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 इमोजी कैरेक्टर प्रॉब्लम सॉल्यूशन
३MySQL कॉन्फ़िगरेशन फ़ाइल को संशोधित करें my.cnf
- (विंडोज सर्वर my.ini है,Linuxसर्वर my.cnf है)
- my.cnf फ़ाइल, आमतौर पर in
/etc/mysql/my.cnfजगह। - सीडब्ल्यूपी नियंत्रण कक्ष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'
३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;
३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
अधिक छिपी हुई ट्रिक्स को अनलॉक करने के लिए, हमारे टेलीग्राम चैनल से जुड़ने के लिए आपका स्वागत है!
पसंद आये तो शेयर और लाइक करें! आपके शेयर और लाइक हमारी निरंतर प्रेरणा हैं!