TTY पर विशेष प्रतीकों को प्रदर्शित नहीं किया गया है


1

मेरे पास एक कंसोल एप्लिकेशन है जो विशेष प्रतीकों को प्रदर्शित कर रहा है जैसे

☢ ☍ ⌘ ✰ ⣿ ⚡ ☯ ⚑  ↺  ⤴  ⤵

कोई बात नहीं - पोटीन (UTF8 + यूनिकोड लाइन ड्राइंग का उपयोग करें, लेकिन मुझे लगता है कि यह क्लाइंट इश्यू नहीं है), स्थानीय कंसोल, सिक्योरसीआरटी - मैं उन्हें नहीं देख सकता। इसके बजाय सिर्फ चौकों। यहाँ मेरा शेल एन वी चर है

LANG=en_US.UTF-8
TERM=xterm

किसी भी विचार कैसे उन प्रतीकों को सही ढंग से दिखाने के लिए टर्मिनल बनाने के लिए?

अपडेट करें

ग्लिफ़ में मेरी दिलचस्पी है

python -c 'print u"\u22c5 \u22c5\u22c5 \u201d \u2019 \u266f \u2622 \u260d \u2318 \u2730 " \
    u"\u28ff \u26a1 \u262f \u2691 \u21ba \u2934 \u2935 \u2206 \u231a \u2240\u2207 \u2707 " \
    u"\u26a0\xa0\u25d4 \u26a1\xa0\u21af \xbf \u2a02 \u2716 \u21e3 \u21e1  \u2801 \u2809 " \
    u"\u280b \u281b \u281f \u283f \u287f \u28ff \u2639 \u2780 \u2781 \u2782 \u2783 \u2784 " \
    u"\u2785 \u2786 \u2787 \u2788 \u2789 \u25b9\xa0\u254d \u25aa \u26af \u2692 \u25cc " \
    u"\u21c5 \u21a1 \u219f \u229b \u267a ".encode("utf8")'

Ubuntu फ़ॉन्ट के साथ स्क्रीनशॉट

यहाँ छवि विवरण दर्ज करें

DejaVu फ़ॉन्ट के साथ स्क्रीनशॉट

यहाँ छवि विवरण दर्ज करें


क्योंकि यह विंडोज पर PuTTY के साथ एक स्थानीय प्रतिपादन मुद्दा है, आपके प्रश्न का उचित उत्तर यह है कि (ए) यह न तो उबंटू की गलती है, न ही (बी) उबंटू की समस्या है।
जेरेमी विसर

1
@JeremyVisser: मैंने कभी नहीं कहा कि यह उबंटू समस्या है। बस विंडोज पर समान प्रतिपादन के लिए किसी तरह की तलाश कर रहा है। क्षमा करें, मैं उबंटू को किसी भी तरह से अपमानित नहीं करना चाहता था)
पाब्लो

जवाबों:


3

मैंने सिर्फ आपके उदाहरण से पात्रों की नकल की और उन्हें एक टर्मिनल विंडो में प्रतिध्वनित किया:

UTF-8 वर्ण गनोम टर्मिनल में परीक्षण

मुझे लगता है कि TTYs के पास इतना चरित्र समर्थन नहीं है, इसलिए यह एक फ़ॉन्ट मुद्दा हो सकता है।


1
निश्चित रूप से एक फ़ॉन्ट मुद्दा। जब तक टर्मिनल utf-8 charset का उपयोग कर रहा है, तब तक यह किसी भी utf-8 वर्ण को संभालने में सक्षम होगा, हालांकि यदि फ़ॉन्ट में दिए गए वर्ण के लिए कोई प्रतीक नहीं है, तो इसे एक आयत के रूप में प्रदर्शित किया जाएगा।
जिरह

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

@ पाब्लो क्या आपने उबंटू फ़ॉन्ट को आज़माया है? ( font.ubuntu.com ) जहां तक ​​मुझे पता है, टर्मिनल उबंटू मोनो का उपयोग करता है।
लार्जो

@lgarzo: मैंने स्क्रीनशॉट के साथ मूल पोस्ट को अपडेट किया है। जैसा कि आप देख सकते हैं कि अधिकांश प्रतीकों को प्रदर्शित नहीं किया गया है। मैंने इस मुद्दे को विकिपीडिया en.wikipedia.org/wiki/Unicode_fonts के अनुसार 2000-29FF यूनिकोड रांगा का समर्थन करने वाले यूनिकोड फ़ॉन्ट को खोजने के लिए नीचे दिया । अब तक Everson Monoआपका स्क्रीनशॉट क्या है, उससे सबसे दूर लेकिन निकटता है। दूसरा है, DejaVu Sans Monoलेकिन कई प्रतीकों का अभाव है और स्पष्ट नहीं है। हैरान ...
पाब्लो

@ पाब्लो मैंने लिनक्स पर PuTTY की कोशिश की है, यह काम करता है (ऊपर स्क्रीनशॉट में जैसा परिणाम मिला है)। हालाँकि, Windows PuTTY में फ़ॉन्ट एन्कोडिंग के बारे में अलग-अलग विचार हैं, इसके बावजूद UTF-8 का अनुवाद पृष्ठ पर चयन किया गया है। (यहां तक ​​कि फ़ॉन्ट वेबपेज एक ब्राउज़र में सभी आवश्यक पात्रों को प्रदर्शित नहीं कर सकता है)। अगर ज़िप में TTF उबंटू में फ़ॉन्ट के समान है, तो मैं अपनी उंगली नहीं रख सकता कि क्या गलत है।
लार्जो 11

0

मैं @lgarzo का समर्थन करता हूं। आप कुछ बड़े फोंट की कोशिश कर सकते हैं, विशेष रूप से प्राच्य वाले:

$ aptitude install ttf-wqy-microhei

0

... पोटीन (UTF8 + यूनिकोड का उपयोग करें ...

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

UTF-8 या UT-16 के निष्कर्षण द्वारा प्रोग्रामर ग्लिफ़ जेनरेशन को यूनिकोड के चरित्र / UTF युग्मों का उपयोग करके भी किया जा सकता है:

    python -c 'print "⌘ ✰ ⣿ ⚡ ☯ ⚑ ↺ ⤴ ⤵ ∆ ⌚"'
    ⌘ ✰ ⣿ ⚡ ☯ ⚑ ↺ ⤴ ⤵ ∆ ⌚

    python -c 'print "⌘ ✰ ⣿ ⚡ ☯ ⚑ ↺ ⤴ ⤵ ∆ ⌚".decode("unicode_escape")'
    â Ⱐ⣿ ⡠⯠â ⺠⤴ ⤵ â â

    python -c 'print "⌘ ✰ ⣿ ⚡ ☯ ⚑ ↺ ⤴ ⤵ ∆ ⌚".decode("unicode_escape")
                                                   .encode("unicode_escape")'
    \xe2\x8c\x98 \xe2\x9c\xb0 \xe2\xa3\xbf \xe2\x9a\xa1 \xe2\x98\xaf \xe2\x9a\x91
    \xe2\x86\xba \xe2\xa4\xb4 \xe2\xa4\xb5 \xe2\x88\x86 \xe2\x8c\x9a

    python -c 'print "⌘ ✰ ⣿ ⚡ ☯ ⚑ ↺ ⤴ ⤵ ∆ ⌚".decode("unicode_escape")
                                                   .encode("unicode_escape")
                                                       .decode("string_escape")'
    ⌘ ✰ ⣿ ⚡ ☯ ⚑ ↺ ⤴ ⤵ ∆ ⌚

    python
    Python 2.7.3 (default, Apr 20 2012, 22:44:07) 
    [GCC 4.6.3] on linux2
    Type "help", "copyright", "credits" or "license" for more information.
    >>> u"⌘ ✰ ⣿ ⚡ ☯ ⚑ ↺ ⤴ ⤵ ∆ ⌚"
    u'\u2318 \u2730 \u28ff \u26a1 \u262f \u2691 \u21ba \u2934 \u2935 \u2206 \u231a'

यूनिकोड ग्लिफ़ UTF-8 या UTF-16 का उपयोग करते हुए प्रदान की जा सकती है,
इस प्रकार Unicode U+2318या UTF-16: 0x2318या हैUTF-8: 0xE2 0x8C 0x98

एक चरित्र के लिए फ़ॉन्ट विवरण शाब्दिक रूप से इसमें खोजा जा सकता है character map। इसे आइकन उपयोगिता के रूप में चलाया जाता है gnome-character-mapया gucharmapटर्मिनल कमांड के साथ सक्रिय किया जाता है । निवास के फ़ॉन्ट की पहचान करने के लिए चरित्र पर दायाँ माउस बटन दबाएँ और दबाए रखें। इसके अलावा, मेनू Show only glyphs in this fontमें उपयोग करें Viewऔर फिर अन्य प्रमुख पात्रों के साथ चरित्र के फ़ॉन्ट को जल्दी से खोजने के लिए एक तीर कुंजी के साथ फ़ॉन्ट सूची के माध्यम से स्क्रॉल करें।

यहाँ छवि विवरण दर्ज करें

oops
पिछला उत्तर नीचे स्पष्ट दोहराता है - प्रश्न के बजाय उत्तर देख रहा था


ubuntu@ubuntu:~$ echo '☢ ☍ ⌘ ✰ ⣿ ⚡ ☯ ⚑  ↺  ⤴  ⤵'
☢ ☍ ⌘ ✰ ⣿ ⚡ ☯ ⚑  ↺  ⤴  ⤵

तथा

python -c 'print u"\xbf  \n FreeSerif\n"  \
  u"\u2019 \u201d \u219f \u21a1 \u21af \u21ba \u21c5 \u21e1 \u21e3 \n" \
  u"\u2206 \u2207 \u2240 \u229b \u22c5 \u22c5\u22c5 \u2318 \u231a \n"  \
  u"\u25aa \u25b9 \u25cc \u25d4 \n"   \
  u"\u260d \u2622 \u262f \u2639 \u266f \u267a \u2691 \u2692 \u26a0 \u26a1 \u26af \n" \
  u"\u2780 \u2781 \u2782 \u2783 \u2784 \u2785 \u2786 \u2787 \u2788 \u2789 \n"  \
  u"\u2707 \u2716 \u2730 \u2a02 \n DejaVu\n"   \
  u"\u2801 \u2809 \u280b \u281b \u281f \u283f \u287f \u28ff \n"  \
  u"\u2934 \u2935 \u254d   \n".encode("utf8")'

प्रिंट

¿  
 FreeSerif
’ ” ↟ ↡ ↯ ↺ ⇅ ⇡ ⇣ 
∆ ∇ ≀ ⊛ ⋅ ⋅⋅ ⌘ ⌚ 
▪ ▹ ◌ ◔ 
☍ ☢ ☯ ☹ ♯ ♺ ⚑ ⚒ ⚠ ⚡ ⚯ 
✇ ✖ ✰ ⨂ 
➀ ➁ ➂ ➃ ➄ ➅ ➆ ➇ ➈ ➉ 
 DejaVu
⠁ ⠉ ⠋ ⠛ ⠟ ⠿ ⡿ ⣿ 
⤴ ⤵ ╍   

का उपयोग करते हुए gnome-terminal

ubuntu@ubuntu:~$ echo \$TERM = $TERM \  \$LANG = $LANG
$TERM = xterm   $LANG = en_US.UTF-8

तथा

ubuntu@ubuntu:~$ lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description:    Ubuntu 12.04 LTS
Release:    12.04
Codename:   precise
ubuntu@ubuntu:~$ 

ध्यान दें: EOT और ENQ प्रतीक गलत
रेफरी हैं: यूनिकोड के प्रतीकों को कैसे यू + 2404 OT EOT और u + 2405 240 ENQ को सही किया जा सकता है?

python -c 'print u"This is ^D EOT (NB!! no ;) \u2404 and ENQ ^E \u2405 ".encode("utf8")'
This is ^D EOT (NB!! no ;) ␄ and ENQ ^E ␅ 
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.