Mysql
 sql >> डेटाबेस >  >> RDS >> Mysql

अंतिम इमोजी एन्कोडिंग योजना

MySQL का utf8 वर्णसेट वास्तव में UTF-8 नहीं है , यह यूटीएफ -8 का एक सबसेट है जो केवल मूल विमान (यू + एफएफएफएफ तक के वर्ण) का समर्थन करता है। अधिकांश इमोजी U+FFFF से अधिक कोड बिंदुओं का उपयोग करते हैं। MySQL का utf8mb4 वास्तविक UTF-8 है जो उन सभी कोड बिंदुओं को एन्कोड कर सकता है। MySQL के बाहर "utf8mb4" जैसी कोई चीज़ नहीं है, बस UTF-8 है। तो:

दोबारा, "utf8mb4" जैसी कोई चीज़ नहीं। HTTP POST अनुरोध किसी भी कच्चे बाइट्स का समर्थन करते हैं, यदि आपका क्लाइंट UTF-8 एन्कोडेड डेटा भेजता है तो आप ठीक हैं।

हाँ।

भगवान नहीं, कच्चे UTF-8 का उपयोग करें (utf8mb4 ) सभी के लिए जो पवित्र है।

खैर, आपकी समस्या है; MySQL के utf8 . के माध्यम से अपना डेटा प्रसारित करना वर्णसेट U+FFFF से ऊपर के किसी भी वर्ण को त्याग देगा। utf8mb4 . का उपयोग करें MySQL के माध्यम से सभी तरह।

आपको यह निर्दिष्ट करना होगा कि इसका वास्तव में क्या अर्थ है। PHP के JSON फ़ंक्शन किसी भी यूनिकोड कोड बिंदु को ठीक से संभालने में सक्षम होना चाहिए, जब तक कि यह मान्य UTF-8 है:

echo json_encode('😀');
"\ud83d\ude00"

echo json_decode('"\ud83d\ude00"');
😀


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. जब यह NULL हो तो MAX फ़ंक्शन के साथ 0 कैसे सेट करें?

  2. पीडीओ-> क्वेरी () और पीडीओ-> निष्पादन () के बीच अंतर

  3. आप MySQL में उपयोगकर्ता के पासवर्ड और नमक को सुरक्षित रूप से कैसे स्टोर करते हैं?

  4. उस कॉलम को खोजें जिसमें MySQL में दिया गया मान हो

  5. MySQL में दिनांक फ़ील्ड में वर्ष के अनुसार समूहित करें