$ sudo apt install fonttools
$ ttx -t cmap -o - /usr/share/fonts/truetype/Arial/arial.ttf Dumping "/usr/share/fonts/truetype/Arial/arial.ttf" to "-"... Dumping 'cmap' table... <?xml version="1.0" encoding="UTF-8"?> <ttFont sfntVersion="\x00\x01\x00\x00" ttLibVersion="4.5"> <cmap> <tableVersion version="0"/> <cmap_format_4 platformID="0" platEncID="3" language="0"> <map code="0x20" name="space"/><!-- SPACE --> <map code="0x21" name="exclam"/><!-- EXCLAMATION MARK --> <map code="0x22" name="quotedbl"/><!-- QUOTATION MARK --> <map code="0x23" name="numbersign"/><!-- NUMBER SIGN --> ... <map code="0xfef8" name="afii62837"/><!-- ARABIC LIGATURE LAM WITH ALEF WITH HAMZA ABOVE FINAL FORM --> <map code="0xfef9" name="afii62838"/><!-- ARABIC LIGATURE LAM WITH ALEF WITH HAMZA BELOW ISOLATED FORM --> <map code="0xfefa" name="afii62839"/><!-- ARABIC LIGATURE LAM WITH ALEF WITH HAMZA BELOW FINAL FORM --> <map code="0xfefb" name="afii62840"/><!-- ARABIC LIGATURE LAM WITH ALEF ISOLATED FORM --> <map code="0xfefc" name="afii62841"/><!-- ARABIC LIGATURE LAM WITH ALEF FINAL FORM --> <map code="0xfffc" name="uniFFFC"/><!-- OBJECT REPLACEMENT CHARACTER --> </cmap_format_4> </cmap> </ttFont>
$ ttx -t cmap -o - /usr/share/fonts/truetype/Arial/arial.ttf \ | perl -C -ne '/ code="0x(.*?)"/ && printf "%04s %s\n", $1, chr(hex $1)' Dumping "/usr/share/fonts/truetype/Arial/arial.ttf" to "-"... Dumping 'cmap' table... 0020 0021 ! 0022 " 0023 # 0024 $ 0025 % 0026 & 0027 ' 0028 ( 0029 ) ... fef4 ﻴ fef5 ﻵ fef6 ﻶ fef7 ﻷ fef8 ﻸ fef9 ﻹ fefa ﻺ fefb ﻻ fefc ﻼ fffc 
# sudo apt install lcdf-typetools # or on Mac # brew install lcdf-typetools
$ otfinfo -u /usr/share/fonts/truetype/Arial/arial.ttf | head uni0020 3 space uni0021 4 exclam uni0022 5 quotedbl uni0023 6 numbersign uni0024 7 dollar ... uniFEF9 1017 afii62838 uniFEFA 1018 afii62839 uniFEFB 1019 afii62840 uniFEFC 1020 afii62841 uniFFFC 863 uniFFFC uniFFFF 0 .notdef
$ sudo apt install libfont-freetype-perl
$ perl -C -MFont::FreeType -e 'Font::FreeType->new->face(shift)->foreach_char( sub { $c=$_->char_code(); printf "%04X %s\n", $c, chr($c); } );' /usr/share/fonts/truetype/Arial/arial.ttf 0020 0021 ! 0022 " 0023 # 0024 $ 0025 % 0026 & 0027 ' ... FEFA ﻺ FEFB ﻻ FEFC ﻼ FFFC 
View unicode codepoints for all letters in file on bash
file="some-file.txt"
perl -C -ne 'for (split //) {printf "U+%04X %s\n", ord, $_}' "$file" | sort -u iconv -f utf8 -t utf32le "$file" | hexdump -v -e '"U+%04X\n"' | sort -u while IFS= read -d $'\000' -n 1 x; do printf 'U+%04X %s\n' "'$x" "$x"; done < "$file" | sort -u