utf8 और latin1 में क्या अंतर है?
utf8 और latin1 में क्या अंतर है?
जवाबों:
UTF-8 को दुनिया के वर्चस्व के लिए तैयार किया गया है, लैटिन 1 नहीं है।
यदि आप लैटिन 1 एनकोडिंग का उपयोग करके गैर-लैटिन वर्णों जैसे चीनी, जापानी, हिब्रू, रूसी आदि को संग्रहीत करने का प्रयास कर रहे हैं, तो वे मोजिबेक के रूप में समाप्त हो जाएंगे । आपको इस लेख का परिचयात्मक पाठ उपयोगी हो सकता है (और अगर आपको थोड़ा सा जावा पता है)।
ध्यान दें कि पूर्ण 4-बाइट UTF-8 समर्थन केवल MySQL 5.5 में पेश किया गया था। उस संस्करण से पहले, यह केवल प्रति चरित्र 3 बाइट्स तक जाता है, प्रति वर्ण 4 बाइट्स नहीं। तो, यह केवल बीएमपी विमान का समर्थन करता है और उदाहरण के लिए इमोजी विमान नहीं। यदि आप पूर्ण 4-बाइट UTF-8 समर्थन चाहते हैं, तो MySQL को कम से कम 5.5 पर अपग्रेड करें या PostgfSQL की तरह किसी अन्य RDBMS के लिए जाएं। MySQL 5.5+ में इसे कहा जाता है utf8mb4
।
VARBINARY
बजाय सहेज सकते हैं VARCHAR
और डीकोड कर सकते हैं । एक नया सवाल पूछने पर विचार करें, शायद बेहतर तरीके हैं।
लैटिन 1 में प्रत्येक चरित्र बिल्कुल एक बाइट लंबा है। Utf8 में एक चरित्र में एक से अधिक बाइट शामिल हो सकते हैं। नतीजतन utf8 में latin1 की तुलना में अधिक वर्ण हैं (और उनके द्वारा समान रूप से बाइट्स / ब्युटीक्वेंस का प्रतिनिधित्व करने वाले वर्ण आवश्यक नहीं हैं)।
binary
कोलाज ...? और कौन सा अंग्रेजी / संख्यात्मक क्षेत्रों के लिए बेहतर है: ascii_general_ci
या ascii_bin
?