Try the unicode utility:
$ unicode ‽
U+203D INTERROBANG
UTF-8: e2 80 bd UTF-16BE: 203d Decimal: ‽
‽
Category: Po (Punctuation, Other)
Bidi: ON (Other Neutrals)
Or the uconv utility from the ICU package:
$ printf %s ‽ | uconv -x any-name
\N{INTERROBANG}
You can also get information via the recode utility:
$ printf %s ‽ | recode ..dump
UCS2 Mne Description
203D point exclarrogatif
Or with Perl:
$ printf %s ‽ | perl -CLS -Mcharnames=:full -lne 'print charnames::viacode(ord) for /./g'
INTERROBANG
Note that those give information on the characters that make-up that glyph, not on the glyph as a whole. For instance, for é (e with combining acute accent):
$ printf é | uconv -x any-name
\N{LATIN SMALL LETTER E}\N{COMBINING ACUTE ACCENT}
Different from the standalone é character:
$ printf é | uconv -x any-name
\N{LATIN SMALL LETTER E WITH ACUTE}
You can ask uconv to recombine those (for those that have a combined form):
$ printf 'e\u0301b\u0301' | uconv -x '::nfc;::name;'
\N{LATIN SMALL LETTER E WITH ACUTE}\N{LATIN SMALL LETTER B}\N{COMBINING ACUTE ACCENT}
(é has a combined form, but not b́).