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

टेक्स्ट में इमोजी को MySQL से SQL सर्वर में कॉपी करना

🤘 वर्ण का यूनिकोड कोडपॉइंट U+1F918 है। , जिसका अर्थ है कि यह मूल बहुभाषी विमान के बाहर है (बीएमपी) यूनिकोड का, जो U+FFFF तक के कोडपॉइंट को कवर करता है।

बीएमपी के बाहर यूनिकोड वर्णों को संसाधित करने के लिए, आपको पूरक वर्णों का समर्थन करने वाले संयोजन , जिसका नाम *_SC . रखा गया है :

इस SQL ​​कथन के परिणामों की तुलना करें

select 
    nchar(unicode(N'🤘' collate Latin1_General_100_CI_AS_SC)) as EmojiSC, 
    unicode(N'🤘' collate Latin1_General_100_CI_AS_SC) as EmojiSCUnicode, 
    cast(N'🤘' as varbinary) as EmojiBinary, 
    cast(nchar(unicode(N'🤘')) as varbinary) as EmojiConvBinary,
    unicode(N'🤘') as EmojiUnicode

Latin1_General_CI_AS . का उपयोग कर डेटाबेस के विरुद्ध चलाने के रूप में

EmojiSC EmojiSCUnicode  EmojiBinary EmojiConvBinary EmojiUnicode
NULL    129304          0x3ED818DD  0x3ED8          55358

बनाम Latin1_General_100_CI_AI_SC . पर सेट किए गए डेटाबेस के विरुद्ध

EmojiSC EmojiSCUnicode  EmojiBinary EmojiConvBinary EmojiUnicode
🤘      129304          0x3ED818DD  0x3ED818DD      129304

आपको "🤘 . क्यों दिखाई देता है "?

U+1F918 का UTF-8 एन्कोडिंग है 0xF0 0x9F 0xA4 0x98 , और वर्ण इन कोडों को ANSI वर्णों के रूप में व्याख्या करने का परिणाम हैं। ।

आपको "�" क्यों दिखाई देता है?

वर्ण � यूनिकोड है प्रतिस्थापन वर्ण और है

और ऐसा इसलिए है क्योंकि U+D83E मान्य यूनिकोड कोडपॉइंट नहीं , लेकिन कोडपॉइंट का पहला शब्द UTF-16 (0xD83E 0xDD18 के रूप में एन्कोड किया गया है। )।

जांचें कि क्या संग्रहीत है, न कि क्या प्रदर्शित किया जाता है

यूनिकोड डेटा प्रदर्शित करना मुश्किल हो सकता है, और यह पता लगाने का सबसे कारगर तरीका है कि हुड के नीचे क्या चल रहा है, बाइट्स को देखना है। TSQL में, cast(... as varbinary) . का उपयोग करें विश्लेषण करने के लिए जहां यूनिकोड डेटा हेरफेर गलत हो जाता है।



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. DATEDIFF - NULL को अभी से बदलें ()

  2. php डेटाबेस के लिए एक पदानुक्रमित नेस्टेड सेट में सरणी परिवर्तित करें

  3. PHP - सख्त मानक:संदर्भ द्वारा केवल चर पारित किए जाने चाहिए

  4. MYSQL - डायनामिक टेबल नामों से डेटा चुनें

  5. MySQL से PostgreSQL में माइग्रेट करना - आपको क्या पता होना चाहिए