आपने सोशल मीडिया के बाज़ार में बहुत ही छोटे पोस्ट के लिए एक कमी देखी है। अब जब Twitter 280 अक्षरों तक के पोस्ट की अनुमति देता है, तो जिन लोगों को सोशल मीडिया पर तेज़ अपडेट चाहिए, उनकी ज़रूरत पूरी नहीं हो पा रही। आप तय करते हैं कि आप अपना खुद का सोशल मीडिया नेटवर्क बनाएँगे।
अपने प्रोडक्ट को खास बनाने के लिए आप इसे चरम बना देते हैं और सिर्फ 5 या उससे कम अक्षरों वाले पोस्ट की अनुमति देते हैं। 5 से ज़्यादा अक्षरों वाले किसी भी पोस्ट को काटकर 5 अक्षरों का कर देना चाहिए।
अपने यूज़र्स को पूरी तरह खुद को अभिव्यक्त करने देने के लिए आप इमोजी और अन्य यूनिकोड की अनुमति देते हैं।
आपको इनपुट स्ट्रिंग को 5 अक्षरों तक काटना है।
डिजिटल रूप में संग्रहीत टेक्स्ट को बाइट की एक श्रृंखला में बदलना पड़ता है। अक्षरों को बाइट में बदलने के तीन तरीके आम तौर पर इस्तेमाल होते हैं।
UTF-8 और UTF-16 दोनों यूनिकोड एन्कोडिंग हैं, यानी ये बहुत बड़ी संख्या में अक्षरों को दर्शाने में सक्षम हैं, जिनमें शामिल हैं:
UTF-8 और UTF-16 दोनों वेरिएबल लंबाई वाली एन्कोडिंग हैं, यानी अलग-अलग अक्षर अलग-अलग जगह लेते हैं।
अक्षर 'a' और इमोजी '😛' को देखिए। UTF-16 में अक्षर 2 बाइट लेता है, लेकिन इमोजी 4 बाइट लेता है।
इस अभ्यास की मुख्य बात यह है कि यूनिकोड कोडयूनिट की जगह यूनिकोड अक्षरों (कोडपॉइंट) के लिए बने API इस्तेमाल किए जाएँ।
एक "सामान्य" UTF-16 एन्कोडेड स्ट्रिंग को अक्षरों के क्रम के रूप में दर्शाया जा सकता है, जहाँ हर अक्षर अधिकतम 16 बिट लंबा हो सकता है (इसी वजह से इसका नाम UTF-16 है)। इसका मतलब है कि 16 बिट, यानी 1 कोड यूनिट से अधिकतम 2¹⁶ (दो की घात सोलह) या 65536 संभावित अक्षर दर्शाए जा सकते हैं। ये 65536 अक्षर मिलकर वह बनाते हैं जिसे Basic Multilingual Set कहा जाता है, जो अधिकांश भाषाओं के सबसे आम अक्षरों के लिए काफी बड़ा है।
लेकिन कुछ प्रतीक सिर्फ 1 कोड यूनिट में नहीं समा पाते। हल यह है कि उन्हें दो कोड यूनिट से दर्शाया जाए। UTF-16 के ये दो कोड यूनिट, जिन्हें अक्सर सरोगेट पेयर भी कहा जाता है, मिलकर एक कोड पॉइंट बनाते हैं।
तो संक्षेप में, जब UTF-16 एन्कोडिंग की बात हो:
code unit 16 (या उससे कम) बिट का होता है और एक अक्षर को दर्शाता है।code point एक या दो कोड यूनिट का होता है और एक अक्षर को दर्शाता है।इसमें और उलझन जोड़ने के लिए ग्राफीम क्लस्टर भी होते हैं, जो मूल रूप से यूनिकोड अक्षरों (कोड पॉइंट) के ऐसे क्रम होते हैं जिन्हें एक ही दृश्य इकाई माना जाना चाहिए। उदाहरण के लिए, कुछ इमोजी, जैसे यह वाला 👨👦।
अधिकांश बिल्ट-इन JavaScript मेथड UTF-16 एन्कोडेड स्ट्रिंग के साथ काम करते हैं, लेकिन वे UTF-16 कोड यूनिट के आधार पर काम करते हैं।
उदाहरण के लिए, String.prototype.split("") मेथड एक स्ट्रिंग को कोड यूनिट के आधार पर अलग करता है।
दूसरी ओर, String iterators कोड पॉइंट के आधार पर इटरेशन करते हैं।
आप यूनिकोड स्ट्रिंग के बारे में बहुत कुछ पढ़ सकते हैं और उदाहरण भी देख सकते हैं, MDN पर।
Exercism पर साइन अप कीजिए और JavaScript को 37 कॉन्सेप्ट159 अभ्यास तथा असली इंसानों से मिलने वाली मेंटरिंग के साथ सीखिए और उसमें महारत हासिल कीजिए, वह भी बिल्कुल मुफ्त।