নির্দিষ্ট গ্লাইফের সাধারণ নামটি কীভাবে খুঁজে পাব?


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}

একক one চরিত্র থেকে পৃথক:

$ 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
@ স্পারহাক, সংকোচনের exclamatifএবং interrogatifrecode80 এর দশকের গোড়ার দিকে একটি ফরাসী-কানাডিয়ান লোক লিখেছিল।
স্টাফেন চেজেলাস

2
@ স্পারহাক ক্যাসিওপিয়া.জুলস.স্যাভা.এস.সি. / গারাবিক / সোফটওয়্যার / ইউনিকোড - দেবিয়ানেরunicode প্যাকেজ হিসাবে উপলব্ধ , আর্কে প্যাকেজিং সম্পর্কে কোনও ধারণা নেই।
গিলস 'অসন্তুষ্ট হওয়া বন্ধ করুন'

1
@ পাওলোএবারম্যান ইকোন চেয়ে প্রিন্টফ কেন ভাল? । আপনি যখন জিজ্ঞাসা করেছেন, আপনি পুরো উত্তরটি পড়বেন বলে আশা করা হচ্ছে একটি পরীক্ষা হবে।
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

হ্যাঁ, @terdon সঠিক is (এই কারণেই আমি প্রশ্নের "আংশিক" বলেছি)) এই ফাইলটিতে কেবল Composeকী- তে ম্যাপযুক্ত গ্লাইফ রয়েছে ।
স্পারহাক
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.