मैंने कुछ स्थानों पर पढ़ा है कि जावास्क्रिप्ट तार यूटीएफ -16 हैं, और अन्य स्थानों पर वे यूसीएस -2 हैं। मैंने कुछ अंतर खोजने की कोशिश करने के लिए चारों ओर खोज किया और पाया:जावास्क्रिप्ट तार - यूटीएफ -16 बनाम यूसीएस -2?
के माध्यम सेप्रश्न: यूसीएस -2 और यूटीएफ -16 के बीच क्या अंतर है?
एक: यूसीएस -2 अप्रचलित शब्दावली जो सरोगेट कोड अंक से पहले, यूनिकोड 1.1 अप करने के लिए एक यूनिकोड कार्यान्वयन के लिए संदर्भित करता है और UTF-16 मानक के संस्करण 2.0 में जोड़ा गया था है। इस शब्द को अब से बचा जाना चाहिए।
यूसीएस -2 एक विशिष्ट डेटा प्रारूप को परिभाषित नहीं करता है, क्योंकि यूटीएफ -16 और यूसीएस -2 डेटा एक्सचेंज के प्रयोजनों के लिए समान हैं। दोनों 16-बिट हैं, और बिल्कुल वही कोड इकाई प्रतिनिधित्व है।
कभी कभी अतीत में एक कार्यान्वयन "यूसीएस -2" लेबल किया गया लिए संकेत मिलता है कि यह अनुपूरक वर्णों का समर्थन नहीं करता है और पात्रों के रूप में किराए की कोड अंक के जोड़े की व्याख्या नहीं है। इस तरह के कार्यान्वयन पूरक पात्रों के लिए चरित्र गुणों, कोड बिंदु सीमाओं, संयोजन आदि के प्रसंस्करण को संभाल नहीं पाएगा।
: http://www.unicode.org/faq/utf_bom.html#utf16-11
तो मेरे सवाल है, यह क्योंकि जावास्क्रिप्ट स्ट्रिंग वस्तु के तरीकों और सूचियों को क्या कुछ लोगों को यह यूसीएस -2 पर विचार कर पात्रों के बजाय 16-बिट डेटा मान पर कार्रवाई है? और यदि ऐसा है, तो 16-बिट डेटा खंडों के बजाय अक्षरों के चारों ओर उन्मुख जावास्क्रिप्ट स्ट्रिंग ऑब्जेक्ट यूटीएफ -16 माना जाएगा? या क्या मैं कुछ और याद कर रहा हूँ?
संपादित करें: के रूप में अनुरोध किया, यहाँ कुछ जावास्क्रिप्ट तार कह स्रोत हैं यूसीएस -2 हैं:
http://blog.mozilla.com/nnethercote/2011/07/01/faster-javascript-parsing/ http://terenceyim.wordpress.com/tag/ucs2/
संपादित: जो कोई भी इस पार आ सकता है के लिए, यह बाहर की जाँच के लिए सुनिश्चित हो लिंक:
http://mathiasbynens.be/notes/javascript-encoding
लिंक के लिए धन्यवाद, spec की भाषा बहुत स्पष्ट लगती है। मुझे लगता है कि यूसीएस -2 बात या तो पुरानी है या सरोगेट जोड़े के लिए विधि और अनुक्रमण समर्थन पर आधारित है। – patorjk
तो, विनिर्देश बताता है "अनुक्रम में प्रत्येक पूर्णांक मान आमतौर पर यूटीएफ -16 पाठ की एक 16-बिट इकाई का प्रतिनिधित्व करता है। हालांकि, ईसीएमएस्क्रिप्ट मानों पर कोई प्रतिबंध या आवश्यकता नहीं रखता है, सिवाय इसके कि वे 16-बिट हस्ताक्षरित पूर्णांक होना चाहिए ", जो यह कहने के बराबर है कि आधुनिक सी कार्यक्रमों में प्रत्येक चरित्र वर्ण" चरित्र "में प्रत्येक वर्ण मान यूटीएफ -8 पाठ की एक 8-बिट इकाई का प्रतिनिधित्व करता है, लेकिन स्पष्ट रूप से यह बताता है कि सी स्ट्रिंग्स" हैं "यूटीएफ -8 होगा गलत। अर्थशास्त्र जावास्क्रिप्ट प्रदान करता है केवल यूसीएस -2; यदि आप यूटीएफ -16 समर्थन चाहते हैं तो आपको डीएमओएस के जवाब के अनुसार स्वयं ऐसा करना होगा। –
यूसीएस संख्याओं के साथ बात है, और हाँ यूसीएस 2 पुराना है, वर्तमान संस्करण यूसीएस 4. यूटीएफ -8/-16/-32 बिट्स में यूसीएस चीजों के सरणी का प्रतिनिधित्व करने के तरीके हैं। ;) – Philip