इमोजी को MySQL में कैसे सेव करें? डेटाबेस दर्ज करें इमोजी एक्सप्रेशन प्रश्न चिह्न वर्ण समस्या

यदि इमोजी MySQL डेटाबेस या MariaDB डेटाबेस में UTF-8 एन्कोडिंग में संग्रहीत हैं, तो वे प्रदर्शित नहीं होंगे।

डेटाबेस में दर्ज किया गया इमोजी एक्सप्रेशन प्रश्न चिह्न वर्ण क्यों बन जाता है?

क्योंकि इमोजी एक्सप्रेशन 4-बाइट वर्ण हैं, और utf8 वर्ण सेट केवल 1-3 बाइट्स वर्णों का समर्थन करता है, इमोजी एक्सप्रेशन को डेटाबेस में नहीं लिखा जा सकता है।

इस समस्या को कैसे हल करें कि डेटाबेस में दर्ज इमोजी एक प्रश्न चिह्न वर्ण बन जाता है?

2 समाधान हैं:

  1. कस्टम वर्णों के साथ चार-बाइट वर्णों को प्रतिस्थापित करते हुए, मैन्युअल रूप से टेक्स्ट दर्ज करें।
  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 इमोजी कैरेक्टर प्रॉब्लम सॉल्यूशन

चरण 1: MySQL कॉन्फ़िगरेशन फ़ाइल 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 ड्राइवर पैकेज केवल 5.1.13+ . में utf8mb4 का समर्थन करता है

आशा है कि चेन वेइलियांग के ब्लॉग ( https://www.chenweiliang.com/ ) पर साझा किया गया लेख "मायक्विली में इमोजी कैसे स्टोर करें? डेटाबेस में इमोजी प्रश्न चिह्न वर्ण दर्ज करने में समस्याएँ" आपके लिए उपयोगी होगा।

इस लेख का लिंक साझा करने में संकोच न करें: https://www.chenweiliang.com/cwl-26592.html

अधिक छिपी हुई ट्रिक्स को अनलॉक करने के लिए, हमारे टेलीग्राम चैनल से जुड़ने के लिए आपका स्वागत है!

पसंद आये तो शेयर और लाइक करें! आपके शेयर और लाइक हमारी निरंतर प्रेरणा हैं!

 

发表 评论

您的邮箱地址不会被公开。必填项已用*标注

ऊपर स्क्रॉल करें