संभव डुप्लिकेट:
मेरे पास यूनिकोड के लिए दो विकल्प हैं जो एक mysql डेटाबेस के लिए आशाजनक दिखते हैं।
utf8_general_ci यूनिकोड (बहुभाषी), केस-असंवेदनशील utf8_unicode_ci यूनिकोड (बहुभाषी), केस-असंवेदनशील
< / Pre>क्या आप कृपया बता सकते हैं कि utf8_general_ci और utf8_unicode_ci के बीच अंतर क्या है? डेटाबेस डिजाइन करते समय किसी को चुनने का क्या प्रभाव होता है?
यह यूनिकोड पर सही ढंग से काम नहीं करता है, क्योंकि यह यूनिकोड आवरण को समझ में नहीं आता है। अकेले यूनिकोड आवरण एक एएससीआईआई के दिमाग के दृष्टिकोण से अधिक जटिल हो सकता है। उदाहरण के लिए: कई अन्य subtleties हैं। स्रोत: utf8_general_ci एक बहुत ही सरल है - और यूनिकोड पर, बहुत टूटा - मिलान, जो सामान्य यूनिकोड पाठ पर गलत परिणाम देता है
utf8_unicode_ci
मानक का उपयोग करता है, तथाकथित विस्तार और लिगचर का समर्थन करता है, उदाहरण के लिए: जर्मन अक्षर ß (U + 00DF अक्षर SHARP S) सॉर्ट किया गया है "एसएस" लेटर (यू + 0152 लैटिन कैपिटल लिगैचर ओई) के पास "ओई" के पास सॉर्ट किया गया है utf8_general_ci
विस्तार / लिगचर का समर्थन नहीं करता, यह इन सभी अक्षरों को एक अक्षर के रूप में रूपांतरित करता है, और कभी-कभी गलत क्रम में।
utf8_unicode_ci
है <सामान्य> सभी लिपियों के लिए अधिक सटीक है उदाहरण के लिए, सिरिलिक ब्लॉक पर: utf8_unicode_ci
इन सभी भाषाओं के लिए ठीक है: रूसी, बल्गेरियाई, बेलारूशियन, मैसेडोनियन, सर्बियाई और यूक्रेनी जबकि utf8_general_ci केवल रूसी और बल्गेरियाई सबरीसेट का सिरिलिक के लिए ठीक है बेलारूसी, मैसेडोनियन, सर्बियाई और यूक्रेनी में इस्तेमाल किए गए अतिरिक्त पत्रों को अच्छी तरह से व्यवस्थित नहीं किया जाता है। utf8_unicode_ci
की लागत यह है कि यह छोटा बिट utf8_general_ci
से अधिक है। लेकिन यह वह कीमत है जिसे आप शुद्धता के लिए भुगतान करते हैं या तो आपके पास एक तेज़ उत्तर हो सकता है जो गलत है, या बहुत थोड़ा धीमा जवाब है जो सही है। आपकी पंसद। गलत उत्तर देने के लिए कभी भी औचित्यपूर्ण होना बहुत मुश्किल है, इसलिए यह मानना अच्छा है कि utf8_general_ci
मौजूद नहीं है और हमेशा utf8_unicode_ci
का उपयोग करें। ठीक है, जब तक आप गलत उत्तर नहीं चाहते।
Comments
Post a Comment