Я не знаю хорошого способу перевірити це bash
, але Python має вбудовану базу даних Unicode, яку ви можете використовувати як у такому сценарії:
#!/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
виняток для будь-яких символів, про які вона не знає, тому друкуємо їх кодові точки у десятковій формі (зазвичай це недруковані символи).
Caveat: сценарій передбачає, що ваш термінал закодований UTF-8. Якщо це не так, слід змінити аргумент decode()
методу. Python підтримує дуже широкий вибір кодувань, ваше точно буде там.
echo -n …— | uniname -bcegpu