
나는 달릴 수 있기를 원한다
unicode-names 'abç'
해당 유니코드 문자 이름을 확인하세요.
LATIN SMALL LETTER A
LATIN SMALL LETTER B
LATIN SMALL LETTER C WITH CEDILLA
문자열을 일련의 유니코드 문자 모양 이름으로 인쇄하는 것은 여러 경우에 유용합니다:
- "i" 및 "í"와 같이 쉽게 혼동되는 문자를 구별합니다.
- 리터럴 문자열에 실제로 무엇이 포함되어 있는지 설명합니다(예: 인쇄할 수 없거나 할당되지 않은, 너비가 0인 문자).
답변1
그만큼유니틸패키지에는 다음 프로그램이 있습니다 uniname
.
$ printf %s '…—' |uniname
character byte UTF-32 encoded as glyph name
0 0 002026 E2 80 A6 … HORIZONTAL ELLIPSIS
1 3 002014 E2 80 94 — EM DASH
답변2
에서 이를 확인하는 좋은 방법은 모르겠지만 bash
Python에는 다음과 같은 스크립트에서 사용할 수 있는 내장 유니코드 데이터베이스가 있습니다.
#!/usr/bin/env python
import sys, unicodedata
for ch in sys.stdin.read().decode('utf-8'):
try:
print unicodedata.name(ch)
except ValueError:
print 'codepoint ', ord(ch)
이 스크립트를 다음과 같이 사용할 수 있습니다(라고 가정 unicode-names
).
$ echo 'abc©áοπρσ' | unicode-names
LATIN SMALL LETTER A
LATIN SMALL LETTER B
LATIN SMALL LETTER C
COPYRIGHT SIGN
LATIN SMALL LETTER A WITH ACUTE
GREEK SMALL LETTER OMICRON
GREEK SMALL LETTER PI
GREEK SMALL LETTER RHO
GREEK SMALL LETTER SIGMA
codepoint 10
데이터베이스는 ValueError
알지 못하는 문자에 대해 예외를 발생시키므로 해당 코드 포인트를 10진수로 인쇄합니다(일반적으로 인쇄할 수 없는 문자입니다).
주의 사항: 스크립트에서는 터미널이 UTF-8로 인코딩된 것으로 가정합니다. 그렇지 않은 경우 decode()
메서드의 인수를 변경해야 합니다. Python은 매우 다양한 인코딩을 지원하므로 귀하의 인코딩도 분명히 포함될 것입니다.
답변3
나는 u
이를 위해 다음과 같은 스크립트를 작성한 적이 있습니다.
#! /bin/sh -
exec perl -Mcharnames=full -Mopen=locale -lne '
printf "U+%04X %s\n", ord($_), charnames::viacode(ord($_)) for /./g' -- "$@"
다음과 같이 사용됩니다:
$ u <<< '棽'
U+0119 LATIN SMALL LETTER E WITH OGONEK
U+00A3 POUND SIGN
U+00BD VULGAR FRACTION ONE HALF
나는 또한 이 openbox
(내 창 관리자) 키 바인딩을 가지고 있습니다:
<keybind key="W-J">
<action name="Execute">
<command>sh -c "notify-send -- \"$(xclip -o | perl -Mcharnames=:full -C -lne 'printf \"U+%04X %s\n\", $_, charnames::viacode($_) for map ord, /\P{ascii}/g')\""</command>
</action>
</keybind>
Windows+를 누르면 J기본 X11 선택 항목에서 ASCII가 아닌 문자를 설명하는 알림이 전송되며 이는 유용할 수 있습니다.