मैं किसी विशेष ग्लिफ़ के लिए सामान्य नाम कैसे खोज सकता हूं?


21

कभी-कभी, मैं एक ग्लिफ़ का नाम जानना चाहूंगा। उदाहरण के लिए, यदि मैं देखता हूं, तो मैं जानना चाहूंगा कि क्या यह एक हाइफ़न -, एन-डैश , इम-डैश या माइनस प्रतीक है । क्या कोई तरीका है कि मैं इसे एक टर्मिनल में कॉपी-पेस्ट कर सकता हूं यह देखने के लिए कि यह क्या है?

यदि मेरा सिस्टम इन ग्लिफ़ों को सामान्य नामों से जानता है, तो मैं अनिश्चित हूं, लेकिन निश्चित रूप से कुछ (आंशिक) जानकारी उपलब्ध है, जैसे कि /usr/share/X11/locale/en_US.UTF-8/Compose। उदाहरण के लिए,

<Multi_key> <exclam> <question>         : "‽"   U203D # INTERROBANG

एक अन्य उदाहरण ग्लिफ़ 🐄:।

जवाबों:


30

यूनिकोड उपयोगिता का प्रयास करें :

$ unicode ‽
U+203D INTERROBANG
UTF-8: e2 80 bd  UTF-16BE: 203d  Decimal: &#8253;
‽
Category: Po (Punctuation, Other)
Bidi: ON (Other Neutrals)

या आईसीयू पैकेज uconvसे उपयोगिता :

$ printf %s ‽ | uconv -x any-name
\N{INTERROBANG}

आप recodeउपयोगिता के माध्यम से भी जानकारी प्राप्त कर सकते हैं :

$ printf %s ‽ | recode ..dump
UCS2   Mne   Description

203D         point exclarrogatif

या पर्ल के साथ:

$ printf %s ‽ | perl -CLS -Mcharnames=:full -lne 'print charnames::viacode(ord) for /./g'
INTERROBANG

ध्यान दें कि वे उन पात्रों की जानकारी देते हैं जो उस ग्लिफ़ को बनाते हैं, ग्लिफ़ पर नहीं। उदाहरण के लिए, (तीव्र उच्चारण के संयोजन के साथ ई):

$ printf é | uconv -x any-name
\N{LATIN SMALL LETTER E}\N{COMBINING ACUTE ACCENT}

स्वसंपूर्ण चरित्र से अलग:

$ printf é | uconv -x any-name
\N{LATIN SMALL LETTER E WITH ACUTE}

आप uconvउन लोगों को फिर से जोड़ने के लिए कह सकते हैं (जिनके पास एक संयुक्त रूप है):

$ printf 'e\u0301b\u0301' | uconv -x '::nfc;::name;'
\N{LATIN SMALL LETTER E WITH ACUTE}\N{LATIN SMALL LETTER B}\N{COMBINING ACUTE ACCENT}

(é का संयुक्त रूप है, लेकिन b́ नहीं)।


क्या है unicode? मुझे लगता है कि स्थापित नहीं है (और यह आर्क लिनक्स रिपॉज में नहीं मिल सकता है)। इसके अलावा, पृथ्वी पर क्या है exclarrogatif? [संपादित करें: मुझे वह भी यहाँ मिलता है, हालाँकि मेरा सिस्टम फ्रेंच नहीं है।]
स्पैरहॉक

2
@Sparhawk, के संकुचन exclamatifऔर interrogatifrecode80 के दशक की शुरुआत में एक फ्रांसीसी-कनाडाई आदमी द्वारा लिखा गया था।
स्टीफन चेज़लस

2
@Sparhawk kassiopeia.juls.savba.sk/~garabik/software/unicode - unicodeडेबियन पर पैकेज के रूप में उपलब्ध है , आर्क पर पैकेजिंग के बारे में कोई विचार नहीं है।
गिल्स एसओ- बुराई को रोकना '

1
@ Pa @loEbermann क्यों प्रिंटो गूंज से बेहतर है? । अब जब आपने पूछा है, तो आपको पूरे उत्तर को पढ़ने की उम्मीद है। टेस्ट होगा।
terdon

1
@ शेपरवॉक %sएक प्लेसहोल्डर की तरह है, जिसे प्रारूप विनिर्देशक (या रूपांतरण विनिर्देशक) कहा जाता है। प्रिंटफ इसे सफल तर्कों के साथ बदल देगा, इसे एक स्ट्रिंग के रूप में माना जाएगा (उदाहरण के लिए, एक संख्या के विपरीत) (आमतौर पर आप सी के printf()फ़ंक्शन के साथ कैसे उम्मीद करेंगे )। डॉक्स ( pubs.opengroup.org/onlinepubs/9699919799//basedefs/… ) देखें ।
मूरू

5

सबसे अच्छा तरीका मुझे पता है कि पर्ल के माध्यम से है uniprops। यह पर्ल के Unicode::Tussleमॉड्यूल के साथ आता है । आप इसे स्थापित कर सकते हैं

sudo perl -MCPAN -e 'install Unicode::Tussle'

फिर आप इसे किसी भी ग्लिफ़ पर चला सकते हैं जिसे आप परीक्षण करना चाहते हैं:

$ uniprops  ‽
U+203D ‹‽› \N{INTERROBANG}
    \pP \p{Po}
    All Any Assigned InPunctuation Punct Is_Punctuation Common Zyyy Po P
       General_Punctuation Gr_Base Grapheme_Base Graph GrBase Other_Punctuation
       Pat_Syn Pattern_Syntax PatSyn Print Punctuation STerm Term
       Terminal_Punctuation Unicode X_POSIX_Graph X_POSIX_Print X_POSIX_Punct

$ uniprops  🐄
U+1F404 ‹🐄› \N{COW}
    \pS \p{So}
    All Any Assigned InMiscPictographs Common Zyyy So S Gr_Base Grapheme_Base Graph
       GrBase Misc_Pictographs Miscellaneous_Symbols_And_Pictographs Other_Symbol
       Print Symbol Unicode X_POSIX_Graph X_POSIX_Print

unipropsआंतरिक रूप से भी वर्णमाला का उपयोग करता है।
कोउंगलम

@cuonglm हां, लेकिन टसल मॉड्यूल में सभी प्रकार के फैंसी उपकरण शामिल हैं और unipropsयह दूर से स्पष्ट रूप से मॉड्यूल को कॉल करने की तुलना में टाइप करना आसान है। यह भी सिर्फ नाम से अधिक जानकारी प्रदान करता है।
terdon

5

आप पर्ल मॉड्यूल से पर्ल थ्रोडकोड फ़ंक्शन का उपयोग कर सकते हैं :

$ printf ‽ | perl -Mcharnames=:full -CLS -nle 'print charnames::viacode(ord)'
INTERROBANG
$ printf 🐄 | perl -Mcharnames=:full -CLS -nle 'print charnames::viacode(ord)'
COW

charnames को सबसे पहले perl v5.6.0 के साथ रिलीज़ किया गया था


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

$ printf ‽ | perl6 -ne 'say .uniname'
INTERROBANG

(तीव्र उच्चारण के संयोजन के साथ ई) और स्टैंडअलोन éचरित्र दोनों आपको देते हैं:

# e with combining acute accent
$ printf é | perl6 -ne 'say .uniname'
LATIN SMALL LETTER E WITH ACUTE

# standalone é
$ printf é | perl6 -ne 'say .uniname'
LATIN SMALL LETTER E WITH ACUTE

( .uninameके लिए आशुलिपि है $_.uniname)


4

आप उपयोग कर सकते हैं unicode, जो केवल नाम की तुलना में कुछ और जानकारी का आउटपुट देता है:

# unicode –
U+2013 EN DASH
UTF-8: e2 80 93  UTF-16BE: 2013  Decimal: &#8211;
–
Category: Pd (Punctuation, Dash)
Bidi: ON (Other Neutrals)

क्या है unicode? मुझे लगता है कि स्थापित नहीं है (और यह आर्क लिनक्स रिपॉज में नहीं मिल सकता है)।
स्पार्कवॉक

3
मेरे डेबियन पर @ श्रावक, यह सिर्फ unicodeपैकेज द्वारा स्थापित एक पायथन स्क्रिप्ट है । आपको डेबियन रेपो से स्रोत पैकेज डाउनलोड करके इसे प्राप्त करने में सक्षम होना चाहिए ।
terdon

1

इसके साथ एक बैश स्क्रिप्ट बनाएं:

#!/bin/bash
awk -F ":" '{print $2}' /usr/share/X11/locale/en_US.UTF-8/Compose | grep "$1" | awk -F "#" '{print $2}'

उदाहरण के लिए, इसे नाम दें namecharऔर इसे निष्पादित करने की अनुमति दें।

अब, आप उदाहरण के लिए कॉल कर सकते हैं:

./namechar @

और परिणाम होगा:

COMMERCIAL AT

यह अच्छा है लेकिन केवल पात्रों के एक सॉस्बेट से मेल खाता है, पूर्ण यूनिकोड नहीं। उदाहरण के लिए, यह पर विफल रहता है 🐄, और के लिए दोहराया परिणाम पैदा करता है । के माध्यम से पाइपिंग द्वारा अंतिम तय किया जा सकता है | sort -u
टेराडॉन

हां, @terdon सही है। (यही कारण है कि मैंने सवाल में "आंशिक" कहा।) इस फ़ाइल में केवल Composeकुंजी के लिए मैप किए गए ग्लिफ़ शामिल हैं ।
स्पार्कवॉक
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.