때로는 글리프의 이름을 알고 싶습니다. 예를 들어, 내가 볼 −
경우 하이픈 -
, 엔 대시 –
, 엠 대시 —
또는 빼기 기호 인지 알고 싶습니다 −
. 이것을 터미널에 복사하여 붙여 넣을 수있는 방법이 있습니까?
내 시스템이 이러한 글리프의 공통 이름을 알고 있는지 확실하지 않지만에서와 같이 (일부) 일부 정보가 확실히 있습니다 /usr/share/X11/locale/en_US.UTF-8/Compose
. 예를 들어
<Multi_key> <exclam> <question> : "‽" U203D # INTERROBANG
다른 글리프 예 : ?
.
답변
유니 코드 유틸리티를 사용해보십시오 .
$ unicode ‽
U+203D INTERROBANG
UTF-8: e2 80 bd UTF-16BE: 203d Decimal: ‽
‽
Category: Po (Punctuation, Other)
Bidi: ON (Other Neutrals)
또는 ICU 패키지 의 uconv
유틸리티 :
$ 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}
(é는 결합 된 형식이지만 b́는 아닙니다).
답변
내가 아는 가장 좋은 방법은 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
답변
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
charnames 는 perl v5.6.0에서 처음 릴리스되었습니다.
함께 펄 (6) 이 크리스마스 날에 생산 준비가 될 것입니다은 유니 코드 문자에 대한 최선의 지원이있을 때 내가 본 이후로, 그것의 가치는 여기 언급. 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)
답변
이것을 사용하여 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