ইনপুট স্ট্রিংয়ের জন্য ইউনিকোড গ্লাইফ নামগুলি কীভাবে প্রিন্ট করা যায়?


12

আমি চালাতে সক্ষম হতে চাই

unicode-names 'abç'

এবং সংশ্লিষ্ট ইউনিকোড চরিত্রের নামগুলি দেখুন:

LATIN SMALL LETTER A
LATIN SMALL LETTER B
LATIN SMALL LETTER C WITH CEDILLA

ইউনিকোড গ্লাইফ নামের একটি সিরিজ হিসাবে একটি স্ট্রিং মুদ্রণ বেশ কয়েকটি ক্ষেত্রে কার্যকর হবে:

  • "I" এবং "í" এর মতো সহজেই বিভ্রান্ত অক্ষরগুলি আলাদা করুন।
  • আক্ষরিক স্ট্রিংয়ে আসলে কী রয়েছে তা ব্যাখ্যা করুন (উদাহরণস্বরূপ, মুদ্রণযোগ্য বা অ-নিরীক্ষণযোগ্য, শূন্য-প্রস্থের অক্ষর)।

উত্তর:


14

Uniutils প্যাকেজ প্রোগ্রাম আছে uniname

$ echo -n …—|uniname
character  byte       UTF-32   encoded as     glyph   name
    0          0  002026   E2 80 A6       …      HORIZONTAL ELLIPSIS
    1          3  002014   E2 80 94       —      EM DASH

1
শুধুমাত্র নাম সহ ন্যূনতম আউটপুট জন্য, এই বিকল্পগুলি ব্যবহার করুন:echo -n …— | uniname -bcegpu
l0b0

8

আমি এটি থেকে চেক করার কোনও ভাল উপায় জানি না bash, তবে পাইথনের একটি বিল্ট-ইন ইউনিকোড ডাটাবেস রয়েছে যা আপনি এটির মতো স্ক্রিপ্টে ব্যবহার করতে পারেন:

#!/usr/bin/env python
import sys, unicodedata
for ch in sys.stdin.read().decode('utf-8'):
  try:
    print unicodedata.name(ch)
  except ValueError:
    print 'codepoint ', ord(ch)

আপনি এই স্ক্রিপ্টটি এটির মতো ব্যবহার করতে পারেন (ধরে নিয়েছেন যে আপনি এটি বলেছেন unicode-names):

$ echo 'abc©áοπρσ' | unicode-names
LATIN SMALL LETTER A
LATIN SMALL LETTER B
LATIN SMALL LETTER C
COPYRIGHT SIGN
LATIN SMALL LETTER A WITH ACUTE
GREEK SMALL LETTER OMICRON
GREEK SMALL LETTER PI
GREEK SMALL LETTER RHO
GREEK SMALL LETTER SIGMA
codepoint 10

ডাটাবেসটি যে ValueErrorকোনও অক্ষর সম্পর্কে জানে না তার জন্য ব্যতিক্রম ছুঁড়ে ফেলেছে, তাই আমরা তাদের কোডপয়েন্টগুলি দশমিক দশকে মুদ্রণ করি (এগুলি সাধারণত ছাপানো অক্ষর নয়)।

ক্যাভেট: স্ক্রিপ্টটি ধরে নিয়েছে যে আপনার টার্মিনালটি ইউটিএফ -8 এনকোডযুক্ত। যদি এটি না হয় তবে আপনার decode()পদ্ধতির যুক্তিটি পরিবর্তন করা উচিত । পাইথন একটি এনকোডিংগুলির একটি বিস্তৃত নির্বাচন সমর্থন করে, আপনার অবশ্যই সেখানে থাকবে in


1
আরও ভাল - ব্যবহার sys.getdefaultencoding()
ক্রিস ডাউন
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.