2011-04-10 13 views
5

नीचे दिए गए पाठ की दीवार का सारांश: मैं रूबी में उच्चारण अक्षरों (इसलिए वे रखरखाव के माध्यम से काम आदि) कैसे प्रदर्शित कर सकता हूं?रूबी और लापरवाही वर्ण


हैलो! मैं अपनी कक्षा के लिए एक कार्यक्रम लिख रहा हूं जो स्पेनिश में कुछ वाक्यों को प्रदर्शित करेगा। जब मैं रूबी में उच्चारण वर्णों का उपयोग करने का प्रयास करता हूं, तो वे सही ढंग से प्रदर्शित नहीं होते हैं (नेटबीन आउटपुट विंडो में (जो जावा जुर्माना में उच्चारण वर्ण प्रदर्शित करता है) या कमांड प्रॉम्प्ट में)।

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

लेकिन मैं कुछ शोध किया, और मेरी रूबी फ़ाइल की शुरुआत करने के लिए निम्न कोड पंक्ति को जोड़ने के लिए एक समाधान मिल गया,:

# coding: utf-8

NetBeans में, मेरा कार्यक्रम इस लाइन की परवाह किए बिना भाग गया। लेकिन मुझे कमांड प्रॉम्प्ट में सफलतापूर्वक चलाने के लिए इस प्रोग्राम को जोड़ने की आवश्यकता थी। (मुझे नहीं पता क्यों।)

हालांकि, मुझे वास्तव में स्क्रीन पर वर्ण प्रदर्शित करने में कोई समस्या है। "सेरा" जैसे शब्द नेटबीन आउटपुट विंडो में "serà ©" के रूप में प्रदर्शित होंगे। और कमांड प्रॉम्प्ट में यह छोटे पाइप वर्ण खींचता है (जो मुझे नहीं पता कि कैसे टाइप करें)।

कुछ और अधिक शोध कर रहा है, मैं के बारे में सुना:

$KCODE = 'UTF-8'

लेकिन मैं इस के साथ किसी भी नसीब होने नहीं कर रहा हूँ।


मैं रूबी 1.8 और 1.9 (मैं आगे और पीछे विभिन्न मशीनों के बीच जाना) का उपयोग कर रहा हूँ।

धन्यवाद, डेरेक

+0

बीटीडब्ल्यू, यह '# एन्कोडिंग है: utf-8'। और आप किस ओएस का उपयोग कर रहे हैं? –

+0

ऐसा लगता है कि यह दोनों तरीकों से काम करता है। मैं ओएसएक्स और विंडोज 7 चला रहा हूं। इसे दोनों पर कोशिश की; अभी भी जवाब नहीं पता चला है। – Derek

उत्तर

2

एक कमांड प्रॉम्प्ट विंडोज 7 में डिफ़ॉल्ट रूप से रेखापुंज फोंट है। और यह यूनिकोड का समर्थन नहीं करता है। सबसे पहले, आपको cmd फ़ॉन्ट को Lucida Console या Consolas में बदलना चाहिए। और फिर कमांड प्रॉम्प्ट के कोडपृष्ठ को chcp 65001 के साथ बदलें। आप इसे मैन्युअल रूप से कर सकते हैं या इस लाइन को अपने रूबी प्रोग्राम में जोड़ सकते हैं:

# encoding: utf-8 
`chcp 65001` #change cmd encoding to unicode 
puts 'será test ' 
+0

जो मुझे समझ में नहीं आता है: यदि मैं जावा में काम करता हूं तो NetBeans आउटपुट कंसोल उच्चारण वर्ण प्रदर्शित करेगा। रूबी में, यह गलत वर्ण प्रदर्शित करता है; यहां तक ​​कि आपके कोड के साथ भी। – Derek

+0

इसके अलावा, जब मैं cmd ​​में फ़ॉन्ट बदलता हूं, तो यह अब सही चरित्र दिखाता है, लेकिन कुछ अजीबता के साथ। उदाहरण के लिए: सीरा को तुरंत बॉक्स के बाद एक बॉक्स में एक प्रश्न चिह्न के साथ प्रदर्शित किया जाएगा, और ऐसा लगता है कि अक्षरों के बाद एक अक्षर है (उदाहरण के लिए सीरस) उस पत्र के साथ प्रदर्शित होता है जो दो बार कॉपी किया जाता है (seráss)। – Derek

+0

क्षमा करें, मुझे नेटबीन के बारे में कुछ भी पता नहीं है। विंडोज सेमीडी के संबंध में, मैंने यह अजीबता भी देखी है। कुछ छोटा हैक है: यदि आप अपने शब्द के बाद एक स्थान दर्ज करते हैं ('' será ''रखता है), सब कुछ ठीक रहेगा। क्षमा करें, मुझे नहीं पता कि ऐसा क्यों होता है लेकिन यह मदद करेगा। –

संबंधित मुद्दे