2012-10-26 11 views
85

मुझे अपने HTML पृष्ठ पर ओमेगा (Ω) डालने की आवश्यकता है। मैं ऐसा करने के लिए अपने एचटीएमएल से बचने वाले कोड का उपयोग कर रहा हूं, इसलिए मैं Ω लिख सकता हूं और Ω प्राप्त कर सकता हूं। जब मैं इसे HTML तत्व में डालता हूं तो यह ठीक है और ठीक है; हालांकि, जब मैं इसे अपने जेएस में डालने की कोशिश करता हूं, उदा। var Omega = Ω, यह जेएस के रूप में कोड को पार करता है और पूरी चीज काम नहीं करती है। किसी को पता है कि इस बारे में कैसे जाना है?जावास्क्रिप्ट में यूनिकोड चरित्र डालें

+10

'var ओमेगा =" Ω "; 'बहुत आसान? –

+4

नोटपैड इसे स्वीकार नहीं करता है, यह सिर्फ ओ: पी – Bluefire

+9

@MikeMcCaughan हां लिखता है, लेकिन यदि कोई अन्य डेवलपर स्रोत फ़ाइल के एन्कोडिंग के साथ गड़बड़ करता है, तो आप खो गए हैं ... आपके पास हमेशा कोई कहने के लिए होगा "OOOOPS मैंने किया यह नहीं पता कि <सॉफ़्टवेयर के लिए प्लेसहोल्डर> सीपी 1250 का उपयोग डिफ़ॉल्ट एन्कोडिंग के रूप में करता है और मैंने यह नहीं देखा कि "या" चरित्र एनको-क्या करने पर छोटे बदलाव? " ; =) –

उत्तर

126

मुझे लगता है कि आप वास्तव में स्ट्रिंग एक अपरकेस ओमेगा युक्त होना चाहते हैं? उस मामले में, आप लिख सकते हैं:

var Omega = '\u03A9'; 

(Ω क्योंकि the Unicode character with codepoint U+03A9 है, अर्थात, 03A9, 937 है, सिवाय इसके चार हेक्साडेसिमल अंक के रूप में लिखा।)

+1

और यदि कोई यह जानना चाहता है कि यूनिकोड स्ट्रिंग के लिए हेक्साडेसिमल मान क्या है: https://mothereff.in/js-escapes – StanE

36

हालांकि @ruakh एक अच्छा जवाब दिया, मैं लूंगा पूर्णता के लिए कुछ विकल्प जोड़ें:

आप वास्तव में भी var Omega = '&#937;' जावास्क्रिप्ट में इस्तेमाल कर सकते हैं, लेकिन केवल तभी अपना JavaScript कोड है:

  • एक घटना विशेषता के अंदर, के रूप में onclick="var Omega = '&#937'; alert(Omega)" या
  • में एक XHTML (या xhtml + xml) दस्तावेज़ एक XML सामग्री प्रकार के साथ परोसा अंदर एक script तत्व में।

इन मामलों में, कोड पहले हो जाएगा (जावास्क्रिप्ट दुभाषिया के लिए पारित करने से पहले) एक HTML पार्सर द्वारा पार्स किया जा सकता इसलिए &#937; की तरह है कि चरित्र संदर्भ पहचाने जाते हैं। प्रतिबंध ज्यादातर मामलों में यह एक अव्यवहारिक दृष्टिकोण बनाते हैं।

आप var Omega = 'Ω' में Ω चरित्र भी दर्ज कर सकते हैं, लेकिन फिर वर्ण एन्कोडिंग को यह अनुमति देनी चाहिए कि एन्कोडिंग को ठीक से घोषित किया जाना चाहिए, और आपको ऐसे सॉफ़्टवेयर की आवश्यकता है जो आपको ऐसे वर्ण दर्ज करने दें। यह एक साफ समाधान है और यदि आप सब कुछ के लिए यूटीएफ -8 एन्कोडिंग का उपयोग करते हैं और इसके द्वारा बनाए गए मुद्दों से निपटने के लिए तैयार हैं तो काफी व्यवहार्य है। स्रोत कोड पठनीय होगा, और इसे पढ़ेगा, आप तुरंत कोड नोटेशन के बजाय चरित्र को स्वयं देखेंगे। दूसरी ओर, अगर अन्य लोग आपके कोड के साथ काम करना शुरू कर देते हैं तो यह आश्चर्य हो सकता है।

\u नोटेशन का उपयोग var Omega = '\u03A9' में, वर्ण एन्कोडिंग से स्वतंत्र रूप से काम करता है, और यह लगभग सार्वभौमिक है। हालांकि यह केवल यू + एफएफएफएफ तक उपयोग किया जा सकता है, यानी \uffff तक, लेकिन अधिकांश वर्ण जो कि ज्यादातर लोगों ने कभी उस क्षेत्र में गिरने के बारे में सुना है। (यदि आपको "उच्च" वर्णों की आवश्यकता है, तो आपको या तो सरोगेट जोड़े या उपर्युक्त दो दृष्टिकोणों में से एक का उपयोग करने की आवश्यकता है।)

आप String.fromCharCode() विधि का उपयोग करके एक वर्ण भी बना सकते हैं, जो यूनिकोड संख्या पैरामीटर के रूप में गुजरता है, दशमलव में var Omega = String.fromCharCode(937) या हेक्साडेसिमल में var Omega = String.fromCharCode(0x3A9) के रूप में। यह यू + एफएफएफएफ तक काम करता है। इस दृष्टिकोण का उपयोग तब भी किया जा सकता है जब आपके पास एक चर में यूनिकोड संख्या हो।

+2

टाइम्स अब बदल गए हैं, 5 साल बाद, लोग 'यू + एफएफएफएफ' सीमा के बाहर "इमोजी" नामक इन चीजों का उपयोग करते हैं। जावास्क्रिप्ट भी है, इसलिए आप यह कर सकते हैं। 'Var poop =' \ u {1F4A9} '; ' –

3

उत्तर सही है, लेकिन आपको एक चर घोषित करने की आवश्यकता नहीं है। एक स्ट्रिंग अपने चरित्र हो सकते हैं:

"This string contains omega, that looks like this: \u03A9" 

दुर्भाग्य से अभी भी ASCII में उन कोड को UTF-8 प्रदर्शित करने के लिए की जरूरत है, लेकिन मैं अभी भी (बहुत अधिक वर्षों के बाद से इंतज़ार कर रहा हूँ ...) वह दिन जब यूटीएफ -8 एएससीआईआई जैसा ही होगा, और एएससीआईआई केवल अतीत की याद होगी।

+0

इमोजी उन कोडों को और भी कठिन बनाते हैं प्रकार! '\ u {1F641}' = –