यूटीएफ -8 वर्ण प्रत्येक 4 बाइट तक ले सकते हैं, 2 जैसा कि आप सोच रहे हैं। UTF-8 is a variable-width encoding, यूनिकोड कोड बिंदु में महत्वपूर्ण बिट की संख्या के आधार: यूनिकोड कोड बिंदु में
- 7 बिट और के तहत: UTF-8
- 8 करने के लिए 11 बिट्स में 1 बाइट: UTF- में 2 बाइट्स 8
- 12 16 बिट: 3 बाइट्स
- 17 से 21 बिट्स: 4 बाइट्स
original UTF-8 spec 31-बिट यूनिकोड मान एन्कोडिंग, UTF- में एन्कोड करने के लिए के रूप में कई के रूप में 6 बाइट्स लेने की अनुमति देता है 8 फॉर्म यूटीएफ -8 लोकप्रिय होने के बाद, यूनिकोड कंसोर्टियम ने घोषणा की कि वे कभी भी 2 और thinsp; - & thinsp; 1 से परे कोड बिंदुओं का उपयोग नहीं करेंगे। अब यह RFC 3629 के रूप में मानकीकृत है।
MySQL currently (यानी संस्करण 5.6) केवल यूनिकोड Basic Multilingual Plane वर्णों का समर्थन करता है, जिसके लिए यूटीएफ -8 प्रति चरित्र 3 बाइट्स की आवश्यकता होती है। इसका मतलब है कि आपके प्रश्न का वर्तमान उत्तर यह है कि आपके TEXT
फ़ील्ड में कम से कम 21,844 वर्ण हो सकते हैं।
आप इसे कैसे देखते पर निर्भर करता है
, वास्तविक सीमा अधिक या कि तुलना में कम हैं:
आप मान, के रूप में मैं करता हूँ, कि बीएमपी सीमा अंत में या में से एक MySQL में हटाया जाएगा, जब itsforks, आपको उस क्षेत्र में 16,383 से अधिक वर्णों को स्टोर करने में सक्षम होने पर भरोसा नहीं करना चाहिए यदि आपका MySQL क्लाइंट मनमाने ढंग से यूनिकोड टेक्स्ट इनपुट की अनुमति देता है।
दूसरी तरफ, आप इस तथ्य का फायदा उठाने में सक्षम हो सकते हैं कि यूटीएफ -8 एक चर चौड़ाई एन्कोडिंग है। यदि आप जानते हैं कि आपका टेक्स्ट अधिकतर कभी-कभी गैर-एएससीआईआई चरित्र के साथ सादा अंग्रेजी है, तो आपकी प्रभावी इन-प्रैक्टिस सीमा अधिकतम 64 और थिंसेप तक पहुंच सकती है; केबी और थिंसे; - और थिंसर; 1 वर्ण सीमा।
स्रोत
2010-12-12 02:54:04
आपकी आंखों के लिए संक्षिप्त उत्तर: यह बहुत ---> http://pastebin.com/eYUPppw6 (21844 3-बाइट यूटीएफ -8 वर्ण) – Sharky