Tôi không biết một cách hay để kiểm tra điều này bash
, nhưng Python có cơ sở dữ liệu Unicode tích hợp mà bạn có thể sử dụng như trong một tập lệnh như thế này:
#!/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)
Bạn có thể sử dụng tập lệnh này như thế này (giả sử bạn đã gọi nó 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
Cơ sở dữ liệu đưa ra một ValueError
ngoại lệ cho bất kỳ ký tự nào mà nó không biết, vì vậy chúng tôi in các điểm mã của chúng ở dạng thập phân (thường là các ký tự không thể in được).
Hãy cẩn thận: tập lệnh giả định thiết bị đầu cuối của bạn được mã hóa UTF-8. Nếu không, bạn nên thay đổi đối số của decode()
phương thức. Python hỗ trợ rất nhiều lựa chọn mã hóa, bạn chắc chắn sẽ ở đó.
echo -n …— | uniname -bcegpu