특정 글리프의 공통 이름을 어떻게 찾을 수 있습니까? 붙여 넣을

때로는 글리프의 이름을 알고 싶습니다. 예를 들어, 내가 볼 경우 하이픈 -, 엔 대시 , 엠 대시 또는 빼기 기호 인지 알고 싶습니다 . 이것을 터미널에 복사하여 붙여 넣을 수있는 방법이 있습니까?

내 시스템이 이러한 글리프의 공통 이름을 알고 있는지 확실하지 않지만에서와 같이 (일부) 일부 정보가 확실히 있습니다 /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: &#8253;
‽
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: &#8211;
–
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


답변