Answers:
尝试unicode实用程序:
$ unicode ‽
U+203D INTERROBANG
UTF-8: e2 80 bd UTF-16BE: 203d Decimal: ‽
‽
Category: Po (Punctuation, Other)
Bidi: ON (Other Neutrals)
或uconv
来自ICU软件包的实用程序:
$ printf %s ‽ | uconv -x any-name
\N{INTERROBANG}
您还可以通过recode
实用程序获取信息:
$ printf %s ‽ | recode ..dump
UCS2 Mne Description
203D point exclarrogatif
或使用Perl:
$ printf %s ‽ | perl -CLS -Mcharnames=:full -lne 'print charnames::viacode(ord) for /./g'
INTERROBANG
请注意,这些信息提供了组成该字形的字符的信息,而不是整个字形的信息。例如,对于é
(结合了重音符号):
$ printf é | uconv -x any-name
\N{LATIN SMALL LETTER E}\N{COMBINING ACUTE ACCENT}
与独立的é字符不同:
$ printf é | uconv -x any-name
\N{LATIN SMALL LETTER E WITH ACUTE}
您可以要求uconv
重新组合(对于具有组合形式的组合):
$ printf 'e\u0301b\u0301' | uconv -x '::nfc;::name;'
\N{LATIN SMALL LETTER E WITH ACUTE}\N{LATIN SMALL LETTER B}\N{COMBINING ACUTE ACCENT}
(e'具有组合形式,但b'没有)。
exclamatif
和的收缩interrogatif
。recode
是由80年代初期的一个法裔加拿大人撰写的。
unicode
Debian上的软件包提供,不知道在Arch上打包。
%s
就像一个占位符,称为格式说明符(或转换说明符)。printf会将其替换为后续参数,将其视为字符串(例如,与数字相反)(通常对C printf()
函数的期望)。请参阅文档(pubs.opengroup.org/onlinepubs/9699919799//basedefs/…)。
我知道的最好方法是通过Perl's uniprops
。它带有Perl的Unicode::Tussle
模块。您可以使用安装
sudo perl -MCPAN -e 'install Unicode::Tussle'
然后,您可以在要测试的任何字形上运行它:
$ uniprops ‽
U+203D ‹‽› \N{INTERROBANG}
\pP \p{Po}
All Any Assigned InPunctuation Punct Is_Punctuation Common Zyyy Po P
General_Punctuation Gr_Base Grapheme_Base Graph GrBase Other_Punctuation
Pat_Syn Pattern_Syntax PatSyn Print Punctuation STerm Term
Terminal_Punctuation Unicode X_POSIX_Graph X_POSIX_Print X_POSIX_Punct
$ uniprops 🐄
U+1F404 ‹🐄› \N{COW}
\pS \p{So}
All Any Assigned InMiscPictographs Common Zyyy So S Gr_Base Grapheme_Base Graph
GrBase Misc_Pictographs Miscellaneous_Symbols_And_Pictographs Other_Symbol
Print Symbol Unicode X_POSIX_Graph X_POSIX_Print
uniprops
在内部也使用charnames :: viacode。
uniprops
比显式调用该模块容易得多。它不仅提供名称,还提供更多信息。
您可以从charnames模块使用Perl viacode函数:
$ printf ‽ | perl -Mcharnames=:full -CLS -nle 'print charnames::viacode(ord)'
INTERROBANG
$ printf 🐄 | perl -Mcharnames=:full -CLS -nle 'print charnames::viacode(ord)'
COW
字符名是在perl v5.6.0中首次发布的
随着Perl 6的将是生产做好准备在这个圣诞节,这是值得在这里提到它,因为当它有Unicode字符最好的支持我所见过。您只需要调用uniname方法/例程:
$ printf ‽ | perl6 -ne 'say .uniname'
INTERROBANG
é
(结合敏锐的重音符号)和独立é
字符都可以为您提供:
# e with combining acute accent
$ printf é | perl6 -ne 'say .uniname'
LATIN SMALL LETTER E WITH ACUTE
# standalone é
$ printf é | perl6 -ne 'say .uniname'
LATIN SMALL LETTER E WITH ACUTE
(.uniname
是的简写$_.uniname
)
您可以使用unicode
,它还会输出一些信息,而不仅仅是名称:
# unicode –
U+2013 EN DASH
UTF-8: e2 80 93 UTF-16BE: 2013 Decimal: –
–
Category: Pd (Punctuation, Dash)
Bidi: ON (Other Neutrals)
unicode
啊 我似乎没有安装该文件(也无法在Arch Linux仓库中找到它)。
unicode
软件包安装的Python脚本。您应该可以通过从Debian repos下载源软件包来获得它。
使用以下命令创建一个bash脚本:
#!/bin/bash
awk -F ":" '{print $2}' /usr/share/X11/locale/en_US.UTF-8/Compose | grep "$1" | awk -F "#" '{print $2}'
例如,根据需要命名它,namechar
并赋予它执行权限。
现在,您可以致电:
./namechar @
结果将是:
COMMERCIAL AT
🐄
,并为产生重复结果€
。最后一个可以通过管道固定| sort -u
。
Compose
键的字形。
unicode
啊 我似乎没有安装该文件(也无法在Arch Linux仓库中找到它)。另外,到底是exclarrogatif
什么?[编辑:虽然我的系统不是法语,但我在这里也得到了。]