मुझे लगता है कि इसका कारण यह है कि यह तेज था, चरित्र पर पहुंच की तरह सरणी, लेकिन कुछ अक्षर 16 बिट्स में फिट नहीं होंगे, इसलिए यह काम नहीं करेगा ...
तो अगर आपको किसी भी तरह से विशेष मामलों को संभालना है, तो यूटीएफ -8 का उपयोग क्यों न करें?
मुझे लगता है कि इसका कारण यह है कि यह तेज था, चरित्र पर पहुंच की तरह सरणी, लेकिन कुछ अक्षर 16 बिट्स में फिट नहीं होंगे, इसलिए यह काम नहीं करेगा ...
तो अगर आपको किसी भी तरह से विशेष मामलों को संभालना है, तो यूटीएफ -8 का उपयोग क्यों न करें?
जवाबों:
क्योंकि यह UCS-2 हुआ करता था, जो कि 16-बिट की एक निश्चित लंबाई थी। बेशक, 16bit पर्याप्त नहीं निकला। उन्होंने UTF-16 को शीर्ष पर वापस रखा।
Originally, Unicode was designed as a pure 16-bit encoding, aimed at representing all modern scripts. (Ancient scripts were to be represented with private-use characters.) Over time, and especially after the addition of over 14,500 composite characters for compatibility with legacy sets, it became clear that 16-bits were not sufficient for the user community. Out of this arose UTF-16.
जावा रिलीज़ के समय UTF-16 अभी तक दिखाई नहीं दिया है, और UTF-8 यूनिकोड मानक का हिस्सा नहीं था।
मुख्य भाग के लिए, सादा और सरल भविष्य-प्रमाण के लिए। क्या यह एक गलत कारण था और इसके बारे में जाने का गलत तरीका एक अलग सवाल है।
आप इस दस्तावेज़ में उनके कुछ डिज़ाइन निर्णयों के पीछे के कुछ कारणों को 2004 के जावा 5 और यूटीएफ -16 में स्विच करने के बारे में देख सकते हैं, जो कुछ कमियों के बारे में बताते हैं: जावा प्लेटफ़ॉर्म में अनुपूरक वर्ण , और देखें कि जावा पारिस्थितिकी तंत्र का उपयोग क्यों करता है उनके स्टैक में अलग-अलग एनकोडिंग? ।
UTF-16 का उपयोग करने के नुकसान के बारे में अधिक जानकारी के लिए, और UTF-8 के सामान्य रूप से बेहतर विकल्प होने की संभावना क्यों है, क्या UTF-16 को हानिकारक माना जाना चाहिए? और UTF-8 हर जगह घोषणापत्र।
string
जावा में "विशेष" प्रकार बनाने के लिए क्या होगा (बहुत पसंद Array
है), String
"साधारण" वर्ग होने के बजाय जो वास्तविक वर्णों वाले "साधारण" सरणी का संदर्भ रखता है। स्ट्रिंग कैसे उत्पन्न होती है, इस पर निर्भर करते हुए, UTF-8, UTF-16, या यहां तक कि UTF-32 इसे संग्रहीत करने का सबसे कुशल तरीका हो सकता है। मुझे नहीं लगता कि "सामान्य" वर्ग के String
लिए कई स्वरूपों को संभालने के लिए कोई विशेष रूप से कुशल तरीका है, लेकिन जेवीएम समर्थन के साथ एक "विशेष" प्रकार हो सकता है।