특정 글리프의 일반 이름을 찾는 방법은 무엇입니까?

특정 글리프의 일반 이름을 찾는 방법은 무엇입니까?

가끔 글리프의 이름을 알고 싶을 때가 있습니다. 예를 들어 을 보면 하이픈인지 엔 대시인지 , 엠 대시인지, 빼기 기호 인지 알고 싶을 수 있습니다 . 이것을 복사하여 터미널에 붙여넣어 그것이 무엇인지 확인할 수 있는 방법이 있습니까?-

내 시스템이 이러한 문자 모양의 일반 이름을 알고 있는지는 확실하지 않지만 다음과 같은 일부 (부분) 정보를 사용할 수 있습니다 /usr/share/X11/locale/en_US.UTF-8/Compose.

<Multi_key> <exclam> <question>         : "‽"   U203D # INTERROBANG

또 다른 글리프 예:

답변1

시도 해봐유니코드유용:

$ unicode ‽
U+203D INTERROBANG
UTF-8: e2 80 bd  UTF-16BE: 203d  Decimal: &#8253;
Category: Po (Punctuation, Other)
Bidi: ON (Other Neutrals)

아니면 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

이는 전체 글리프가 아닌 글리프를 구성하는 문자에 대한 정보를 제공한다는 점에 유의하세요. 예를 들어 (e에 악센트가 있음):

$ 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́은 아닙니다).

답변2

펄을 사용할 수 있습니다charnames의 viacode 기능기준 치수:

$ printf ‽ | perl -Mcharnames=:full -CLS -nle 'print charnames::viacode(ord)'
INTERROBANG
$ printf 

답변3

내가 아는 가장 좋은 방법은 Perl을 이용하는 것입니다 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  

답변4

다음 명령을 사용하여 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

관련 정보