回答:
これをからチェックする良い方法はわかりませんが、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
認識していない文字に対して例外をスローするため、コードポイントを10進数で出力します(これらは通常、印刷できない文字です)。
警告:スクリプトは、端末がUTF-8でエンコードされていることを前提としています。そうでない場合は、decode()
メソッドの引数を変更する必要があります。Pythonは非常に幅広い種類のエンコーディングをサポートしています。あなたのエンコーディングは間違いなくそこにあります。
sys.getdefaultencoding()
。
echo -n …— | uniname -bcegpu