# युनिकोड

| Unicode |
| --- |
| UCS |
| UTF-7 |
| UTF-8 |
| UTF-16 |
| UTF-32 |
| UTF-EBCDIC |
| SCSU |
| Punycode |
| GB18030

---

 |
| Bi-directional text |
| BOM |
| Han unification |
| Unicode and HTML |

याहा कोहि Unicode), प्रत्येक अक्षर को लागि एक विशेष संख्या प्रदान गर्दछ, चाहे कुनै पनि कम्प्युटर प्लेटफर्म, प्रोग्राम अथवा कुनै पनि भाषा हो। यूनिकोड स्टैंडर्ड को एपल, एच.पी., आई.बी.एम., जस्ट सिस्टम, माइक्रोसफ्ट, ओरेकल, सैप, सन, साईबेस, यूनिसिस जस्तो उद्योग को प्रमुख कम्पनिहरु र धेरै अन्य ले अपनाएको छ। यूनिकोड को आवश्यकता आधुनिक मानदंडों, जस्तै एक्स.एम.एल, जावा, एकमा स्क्रिप्ट (जावास्क्रिप्ट), एल.डी.ए.पी., कोर्बा 3.0, डब्ल्यू.एम.एल को लागि हुन्छ र यो आई.एस.ओ/आई.ई.सी. 10646 को लागू गर्ने अधिकारिक तरीका छ। यो धेरै सञ्चालन प्रणालिहरु, सबै आधुनिक ब्राउजरों र धेरै अन्य उत्पादनहरु मा हुन्छ। यूनिकोड स्टैंडर्ड को उत्पति र यसको सहायक उपकरणहरू को उपलब्धता, हाल नै को अति महत्त्वपूर्ण विश्वव्यापी सफ्टवेयर प्रौद्योगिकी रुझानों मध्ये छन्।

यूनिकोड को ग्राहक-सर्भर अथवा बहु-आयामी उपकरणहरू र वेबसाइटों मा शामिल गर्न से, परम्परागत उपकरणहरू को प्रयोग गरे अपेक्षा खर्च मा अत्यधिक बचत हुन्छ। यूनिकोड भन्दा एक यस्तो एक्लो सफ्टवेयर उत्पादन अथवा एक्लो वेबसाइट मिलछ, जसलाई री-इंजीनियरिंग को बिना विभिन्न प्लेटफर्महरु, भाषाहरु र देशहरू मा उपयोग गरिन सक्छ। यसले आँकडहरूलाई बिना कुनै बाधा को विभिन्न प्रणालिहरूसँग भएर ले जाया जान सक्छ।

## यूनिकोड के हो?

यूनिकोड प्रत्येक अक्षर को लागि एक विशेष नम्बर प्रदान गर्दछ,

* चाहे कुनै पनि प्लटफर्म हो,
* चाहे कुनै पनि प्रोग्राम हो,
* चाहे कुनै पनि भाषा हो।

कम्प्युटर, मूल रूप मा, नम्बरसग सम्बंध राख्छ। यो प्रत्येक अक्षर र वर्ण को लागि एक नम्बर निर्धारित गरेर अक्षर र वर्ण सङ्ग्रहित गर्छन। यूनिकोड को आविष्कार होने भन्दा पहिले, यस्तो नम्बर दिन को लागि सैंकडों विभिन्न सङ्केत लिपि प्रणालिहरु थिए। कुनै एक सङ्केत लिपि मा पर्याप्त अक्षर हैन हुन सक्छन् : उदाहरण को लिए, यूरोपीय सङ्घ को एक्लै ही, आफ्नो सबै भाषाहरु को कवर गर्न को लागि अनेक विभिन्न सङ्केत लिपिहरु को आवश्यकता हुन्छ। अङ्ग्रेजी जस्तो भाषा को लागि पनि, सबै अक्षरहरु, विरामचिन्हों र सामान्य प्रयोग को प्रौद्योगिकी प्रतीकहरु हेतु एक नै सङ्केत लिपि पर्याप्त थिएन।

यो सङ्केत लिपि प्रणालिहरु मास्पर विरोधी पनि छन्। यसैको लागि, दुइ सङ्केत लिपिहरु दुइ विभिन्न अक्षरहरु को लिए, एक नै नम्बर प्रयोग गर्न सक्छं, अथवा समान अक्षर को लागि विभिन्न नम्बरहरूको प्रयोग गर्न सक्छं। कुनै पनि कम्प्युटर (विशेष रूप ले सर्वर) को विभिन्न सङ्केत लिपिहरु संभालनी पडती है; फेरि पनि जब दुइ विभिन्न सङ्केत लिपिहरु अथवा प्लेटफर्मों को बीच डाटा पठाइन्छ त उन डाटा को संधै खराब भएको जोखिम रहन्छ।

**यूनिकोड देखि यो सबै केहि बदल रहेको छ !**

## यूनिकोड को विशेषताहरु

१) यो विश्व को सबै लिपिहरूसँग सबै संकेतहरु को लागि एक अलग कोड बिन्दु प्रदान गर्दछ।

२) यो वर्णहरु (कैरेक्टर्स) को एक कोड दिइन्छ, न कि ग्लिफ (glyph) को।

३) जहाँ पनि सम्भव यूनिकोड हुन्छ, यो भाषाहरु को एकीकरण गर्ने प्रयत्न गर्दछ। त्यहि नीति को तहत सबै पश्चिम यूरोपीय भाषाहरु को लैटिन को अन्तर्गत समाहित गरिएको छ; सबै स्लाविक भाषाहरु को सिरिलिक (Cyrilic) को अन्तर्गत राखाइएको छ; हिन्दी, संस्कृत, मराठी, नेपाली, सिन्धी, कश्मीरी आदि को लागि 'देवनागरी' नाम ले एक नै ब्लक दिइएको छ; चीनी, जापानी, कोरियाई, वियतनामी भाषाहरु को 'युनिहान्' (UniHan) नाम ले एक ब्लक मा राखाइएको छ; अरबी, फारसी, उर्दू आदि को एक नै ब्लक मा राखाइएको छ।

४) बायाँ भन्दा दायाँ लिखी जाने वाला लिपिहरु को अतिरिक्त दाएँ-से-बाएँ लिखी जाने वाला लिपिहरु (अरबी, हिब्रू आदि) को पनि यसमा शामिल गरिएको छ। माथि देखि तल को तर्फ लिखी जाने वाला लिपिहरु को अझै अध्ययन गरे जा रहेको छ ।

५) यो ध्यान राख्न जरूरी छ कि यूनिकोड केवल एक कोड-सारणी छ। यि लिपिहरु लाई लिख्न/पढ्ने क लागि इनपुट मेथड एडिटर र फण्ट-फाइल जरूरी छ।

५) यूनिकोड १६ बिट्स को एक ईकाई को रूप मा लेकर चल्छ।

## यूनिकोड को महत्त्व र लाभ

* एक नै दस्तावेज मा अनेकों भाषाहरु को टेक्स्ट लिखे जान सकिन्छ।

* टेक्स्ट को केवल एक निश्चित तरिका देखि संस्कारित गर्ने आवश्यकता पडती छ जसबाट विकास-खर्च एवं अन्य खर्चे कम लाग्छन।

* कुनै सफ्टवेयर-उत्पाद को एक नै संस्करण पुरा विश्व मा चलाया जान सक्छ। क्षेत्रीय बजारहरु को लागि अलग देखि संस्करण निकालन आवश्यकता हैन पडती

* कुनै पनि भाषा को टेक्स्ट पुरा संसार मा बिना भ्रष्ट भएका हिड जान्छ। पहिले यस तरिका को धेरै समस्याएंम् आती थिए।

### हानियाँ

यूनिकोड, आस्की तथा अन्य कैरेकटर कोडों को अपेक्षा अधिक स्मृति (मेमोरी) लिन्छ। कितनी अधिक स्मृति लगेगी यो यस कुरा मा निर्भर गर्दछ कि तपाईँ को सा यूनिकोड प्रयोगएर रहे छन्। UTF७, UTF८, UTF१६ या वास्तविक यूनिकोड - एक अक्षर अलग-अलग बाइट प्रयोग गर्छन।

## देवनागरी यूनिकोड

* देवनागरी यूनिकोड को परास (रेंज) ०९०० देखि ०९७F सम्म छ। (दोनो संख्याहरू षोडषाधारी हैं)

* क्ष, त्र एवं ज्ञ को लागि अलग देखि कोड छैन। यिनलाई संयुक्त वर्ण मानएर अन्य संयुक्त वर्णहरु को भांति यिनीहरुका अलग देखि कोड हैन दिइएको छ।

* यस रेंज मा धेरै देखि यस्तो वर्णहरु को लागि पनि कोड दिये गये हो जो सामान्यतः हिन्दी मा व्यवहृत हुदैनन्। किन्तु मराठी, सिन्धी, मलयालम आदि को देवनागरी मा सम्यक ढंग देखि लेखन को लागि आवश्यक छन्।

* नुक्ता वाला वर्णहरु (जस्तै ज) को लागि यूनिकोड निर्धारित गरिएको छ। यसको वाहेक नुक्ता को लागि पनि अलग भन्दा एक यूनिकोड दिइएको छ। अतः नुक्तायुक्त अक्षर यूनिकोड को दृष्टि ले दुइ प्रकार देखि लिखे जान सकिन्छं - एक बाइट यूनिकोड को रूप मा या दुइ बाइट यूनिकोद को रूप मा। उदाहरण को लागि **ज** को ' ज ' पछि नुक्ता ( ) टाइप गरेर पनि लेखन सकिन्छ।

देवनागरी को यूनिकोड

|  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- |
|   | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | A | B | C | D | E | F |
| U+090x |   | ँ | ं | : | ऄ | अ | आ | इ | ई | उ | ऊ | ऋ | ऌ | ऐ | ऐ | ए |
| U+091x | ऐ | ओ | ओ | ओ | औ | क | ख | ग | घ | ङ | च | छ | ज | झ | ञ | ट |
| U+092x | ठ | ड | ढ | ण | त | थ | द | ध | न | ऩ | प | फ | ब | भ | म | य |
| U+093x | र | र | ल | ळ | ल | तथा | श | ष | स | ह |   |   |  | ऽ | ा | ि |
| U+094x |  | ु | ू | ृ | ॄ | े | े | े | ै |  | ो | ो | ौ | ् |   |   |
| U+095x | ॐ | ॑ | ॒ | ॓ | ॔ |   |   |   | क | ख | ग | ज | ड | ढ | फ | य |
| U+096x | ॠ | ॡ | ॢ | ॣ | । | ॥ | ० | १ | २ | ३ | ४ | ५ | ६ | ७ | ८ | ९ |
| U+097x | ॰ |   | ॲ |   |   |   |   |   |   |   |   | ग॒ | ज॒ |   | ड॒ | ब॒ |

## यूनिकोड कन्सर्शियम

यूनिकोड कन्सर्शियम, एक लाभ न कमाने वाला एक सङ्गठन हो जसको स्थापना यूनिकोड स्टैंडर्ड, जो आधुनिक सफ्टवेयर उत्पादनहरु र मानकहरु मा पाठ को प्रस्तुति को निर्दिष्ट गर्दछ, को विकास, विस्तार र यसको प्रयोग लाई बढावा दिन को लागि गरिएको थियो। यस कन्सर्शियम को सदस्यहरु मा, कम्प्युटर र सूचना उद्योग मा विभिन्न निगम र सङ्गठन शामिल छन्। यस कन्सर्शियम को वित्तपोषण पूर्णतः सदस्यहरु को शुल्क देखि गरिन्छ। यूनिकोड कन्सर्शियम मा सदस्यता, विश्व मा कहीं पनि स्थित उन सङ्गठनहरु र व्यक्तिहरु को लागि खुली छ जो यूनिकोड को समर्थन गर्छन र जो यसको विस्तार र कार्यान्वयन मा सहायता गर्न चाहते छन्।

## UTF-८, UTF-१६ तथा UTF-३२

1. यूनिकोड को मतलब छ सबै लिपिचिह्नों को आवश्यकता को पूर्ति गर्न मा सक्षम 'एकसमान मानकीकृत कोड' ।
2. पहिले सोचा गएको थियो कि केवल १६ बिट को माध्यम ले नै दुनिया को सबै लिपिचिह्नहरूको लागि अलग-अलग कोड प्रदान किये जा सकेंगे। त्यस पछि थाहा भएको कि यो कम छ। फेरि यसलाई ३२ बिट गरइयो। अर्थात यस समय दुनिया को कुनै सङ्केत छैन जसलाई ३२ बिट को कोड मा कहीं न कहीं ठाँउ न मिल गयी हो।
3. ८ बिट को कुल २पर घात ८ = २५६ अलग-अलग बाइनरी संख्याहरु बन सकती हैं; १६ बिट देखि २ मा घात १६ = ६५५३६ र ३२ बिट देखि ४२९४९६७२९६ भिन्न (distinct) बाइनरी संख्याहरु बन सकती छन्।
4. यूनिकोड को तीन रूप प्रचलित छन्। UTF-८, UTF-१६ र UTF-३२.
5. यिनीहरूमा अन्तर के हो? मान लीजिये तपाईँको नजिकै दस पेज को कुनै टेक्स्ट छ जसमा रोमन, देवनागरी, अरबी, गणित को चिन्ह आदि धेरै केहि छ। यिनी चिन्हों को यूनिकोड अलग-अलग होंगे। यहाँ ध्यान दिन योग्य कुरा हो कि केहि संकेतहरु को ३२ बिट को यूनिकोड मा शुरू मा शून्य नै शुन्य हो (जस्तै अङ्ग्रेजी को संकेतहरु को लागि)। यदि सुरुवाती शून्यहरूलाई हटा दिए जाय त यिनलाई केवल ८ बिट को द्वारा पनि निरूपित गरिन सक्छ र कहीं कुनै भ्रम या कांफ्लिक्ट हुनेछैन। त्यहि तरिका रूसी, अरबी, हिब्रू आदि को यूनिकोड यस्तो हो कि शून्य को छोड दिए पछि उनलाई प्राय: १६ बिट = २ बाइट देखि निरूपित गरिन सक्छ। देवनागरी, जापानी, चीनी आदि को आरम्भिक शून्य हटाउन पछि प्राय: २४ बिट = तीन बाइट देखि निरूपित गरिन सक्छ। किन्तु धेरै देखि सङ्केत हुनेछन् जसमा आरम्भिक शून्य हुनेछैनन् र उनलाई निरूपित गर्न को लागि चार बाइट नै लगेंगे।
6. बुन्दु (५) मा बताए गये काम को UTF-८, UTF-१६ र UTF-३२ थोडा अलग अलग ढंग देखि गर्छन। उदाहरण को लागि यूटीएफ-८ के गर्दछ कि केहि लिपिचिह्नहरूको लागि १ बाइट , केहि को लागि २ बाइट, केहि को लागि तीन बढी चार बाइट प्रयोग गर्दछ। तर UTF-१६ त्यहि काम को लागि १६ न्यूनतम बिटहरूको प्रयोग गर्दछ। अर्थात जो चीजहरु UTF-८ मा केवल एक बाइट ठाँउ लेती थिए उनी अब १६ बिट==२ बाइट को द्वारा निरूपित होंगी। जो UTF-८ मा २ बाइट लेतीं थियो यूटीएफ-१६ मा पनि दुइ नै लेंगी। किन्तु पहिले जो संकेतदि ३ बाइट या चार बाइट मा निरूपित हुन्थे यूटीएफ-१६ मा ३२ बिट=४ बाइट को द्वारा निरूपित गरिनेछ। (तपाईँको नजिकै ठुला-बडी ईटाहरु हो र उनको बिना तोडे खम्भा बनाउन हो त खम्भा ज्यादा बडा नै बनाया जान सक्छ। )
7. लगभग स्पष्ट छ कि प्राय: UTF-८ मा इनकोडिंग गर्न देखि UTF-१६ को अपेक्षा कम बिट्स लगेंगे।
8. यसको वाहेक धेरै देखि पुराना सिस्टम १६ बिट को हैंडिल गर्न मा अक्षम थिए। उनी एकबार मा केवल ८-बिट नैसँग काम गरेर सकते थिए। यस कारण पनि UTF-८ को अधिक अपनाएइयो। यो अधिक प्रयोग मा आउछ।
9. UTF-१६ र UTF-३२ को पक्ष मा राम्रोई यो हो कि अब कम्प्युटरहरु को हार्डवेयर ३२ बिट या ६४ बिट को भएको छ। यस कारण UTF-८ को फाइलहरूलाई 'प्रोसेस' गर्न मा UTF-१६, UTF-३२ वाला फाइलों को अपेक्षा अधिक समय लगेगा।

## उपयोगी यूनिकोड औजार (टूल्स)

* Unicode Tools अभिलेखिकरण २०११-०४-२८ वेब्याक मेसिन :

* (क) String to Unicode Value ;
* (ख) Numeric Value to String ;
* (ग) Numeric Value Generator

* UniView - An XHTML-based application to look up characters, character blocks, paste in and discover unknown characters, store your own info about characters, search on character names, do hex/dec/ncr conversions, highlight character types, etc. etc.
* UTF-८, UTF-१६, UTF-३२ Code Charts and Converter अभिलेखिकरण २००७-१०-२८ वेब्याक मेसिन
* Character map अभिलेखिकरण २००५-०७-२७ वेब्याक मेसिन (requires JavaScript)

### फंण्ट परिवर्तक

यदि कुनै लेख कुनै ठाँउ मा कुनै यस्तो फंन्ट को प्रयोगएर को लेखाइएको छ जो कि यूनिकोड छैन त फन्ट परिवर्तक प्रोग्रामहरूको प्रयोग गरेर उसलाई यूनिकोड मा बदलन सकिन्छ।

विस्तृत जानकारी को लागि हेर्नुहोस - 'फण्ट परिवर्तक'

### जंक (विकृत) यूनिकोड को सही गर्न को उपाय

याहू जस्तै इमेल सेवाहरू मा यूनिकोड कैरेक्टर विकृत भए पछि मूल इमेल प्राप्त गरेर पढने को ओनलाईन औजार

* बालेंदु शर्मा दाधीच द्वारा विकसित आनलाईन यूनिकोड विकृति संशोधक
* Hindi Unicode Repair Tool अभिलेखिकरण २००७-१२-०१ वेब्याक मेसिन

## संदर्

## यिनलाई पनि हेर्नुहोस

* इण्डिक यूनिकोड
* इस्की (ISCII)
* आस्की (ASCII)

## बाहिरी कडिहरु

* यूनिकोड.ओर्ग
* यूनिकोड के हो?
* भूमंडलीकरण मा आईटी को योगदान हो यूनिकोड अभिलेखिकरण २००७-१०-२१ वेब्याक मेसिन
* यूनिकोड-सक्षम उत्पादनहरु को सूची - आपरेटिंग सिस्टम, ब्राउजर, प्रोग्रामिंग को भाषाहरु, एवं अन्य अनेक उत्पाद
* FAQ about Unicode for Indic Scripts and Languages
* UTF-८ encoding table and Unicode characters अभिलेखिकरण २००७-१०-११ वेब्याक मेसिन
* DecodeUnicode - यूनिकोड विकी, ५०.००० gifs
* Unicode Entity Codes for the Devanāgarī Script अभिलेखिकरण २०१०-०२-०२ वेब्याक मेसिन
* देवनागरी को यूनिकोड चार्ट (स्टैण्डर्ड ५.०)
* Table of Unicode characters from १ to ६५५३५ अभिलेखिकरण २००७-११-०३ वेब्याक मेसिन
* decodeunicode.org images of all ९८,८८४ graphical unicode characters (German/English, full text search)
* Tim Bray's Characters vs Bytes explains how the different encodings work.
* **Unicode** अभिलेखिकरण २०११-०४-२९ वेब्याक मेसिन (good introduction)
* हिन्दी एवं देवनागरी को लागि यूनिकोडोत्तर दौर को चुनौती अलग र ठूलो हैं अभिलेखिकरण २०१३-०४-१३ वेब्याक मेसिन (बालेन्दु शर्मा दाधीच)
* The Significance of Unicode

### यूनिकोड उपकरण तथा फण्ट

* Unicode Code Converter v७.०३ - यूनिकोड को तरह-तरह को वैकल्पिक रूपहरु मा बदलन वाला आनलाईन प्रोग्राम
* Free C++ Unicode Libraries अभिलेखिकरण २००७-११-१० वेब्याक मेसिन
* Alan Wood's Unicode Resources Contains lists of word processors with Unicode capability; fonts and characters are grouped by type; characters are presented in lists, not grids.