Command-Line
如何為輸入字元串列印 Unicode 字形名稱?
我希望能夠跑步
unicode-names 'abç'
並查看相應的 Unicode 字元名稱:
LATIN SMALL LETTER A LATIN SMALL LETTER B LATIN SMALL LETTER C WITH CEDILLA
在以下幾種情況下,將字元串列印為一系列 Unicode 字形名稱會很有用:
- 區分容易混淆的字元,例如“i”和“í”。
- 解釋文字字元串實際包含的內容(例如不可列印或未分配的零寬度字元)。
uniutils軟體包有以下程序
uniname
:$ printf %s '…—' |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
我不知道從 中檢查這個的好方法
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
對它不知道的任何字元拋出異常,因此我們以十進制列印它們的程式碼點(這些通常是不可列印的字元)。警告:該腳本假定您的終端是 UTF-8 編碼的。如果不是,您應該更改該
decode()
方法的參數。Python 支持非常廣泛的編碼選擇,你的肯定會在那裡。