2017-12-19 1 views
1

CL에서 문자의 유니 코드 이름을 문자열로 가져올 수 있습니까? 인수로 #\α을 수신하는 함수는 "GREEK SMALL LETTER ALPHA"을 반환합니까?Common Lisp : 유니 코드 이름 가져 오기

+1

시작 [ 'char-code'와'code-char'] (http://cl-cookbook.sourceforge.net/strings.html#chars)를 참조하십시오. – jthill

+6

['CHAR-NAME']도 참조하십시오. (http://www.lispworks.com/documentation/HyperSpec/Body/f_char_n.htm) – jkiiski

답변

4

cl-unicode 라이브러리를 사용하여 다음과

CL-USER> (cl-unicode:unicode-name #\α) 
"GREEK SMALL LETTER ALPHA" 
CL-USER> (cl-unicode:unicode-name 945) 
"GREEK SMALL LETTER ALPHA" 
+0

저는 이것을 처음 접했고, 이것을 얻기 위해 사용할 수있는 패키지 관리자가 있습니까? 도서관? (sbcl과 슬라임 사용) – Toothrot

+1

예, quicklisp이라고합니다. 다음과 같이 자세한 내용을 설치하십시오. https://www.quicklisp.org/beta/ 그런 다음 (ql : quickload "cl-unicode")를 작성하여 라이브러리 및 그 종속성을 가져 와서로드 할 수 있습니다. 사용 가능한 라이브러리는 http://quickdocs.org/에서 찾아 볼 수 있습니다. 자신의 라이브러리를 만들 때 해당 라이브러리의 종속성을 asd 파일에 나열합니다. 라이브러리를 ~/quicklisp /에 저장 (또는 거기에 심볼릭 링크)하면 종속성을 가진 빠른로드가 가능합니다. –

1

CHAR-NAME의 결과는 표준화되지 않지만, 종종 당신은 얻을 것이다 :

? (char-name #\α) 
"Greek_Small_Letter_Alpha" 

LispWorks에서 :

CL-USER 40 > (char-name #\α) 
"U+03B1" 

CL-USER 41 > (system::lookup-unicode-character-name #\α) 
"GREEK SMALL LETTER ALPHA"