Emacs Lisp: получение значения ascii символа

Я хотел бы перевести символ в Emacs в его числовой код ascii, подобный casting char a = 'a'; int i = (int)a в c. Я пытался string-to-number и несколько других функций, но ни одна из них не заставляет Emacs читать Символ как число в конце.

какой самый простой способ сделать это?

3 ответов


String является массивом.

(aref "foo" 0)

чтобы получить ascii-число, которое представляет символ ,как сказал Дрю, поставьте знак вопроса перед символом и оцените это выражение

?a ==>97

номер появляется в minibuffer, с C-u он написан за выражением.

также обратные работы

(insert 97) вставить в буфер.

BTW в некоторых случаях символ должен быть процитирован

?\" будет eval, чтобы 34


символ is целое число в Emacs Lisp. Нет отдельного символьного типа данных.

функции string-to-char встроен и делает то, что вы хотите. (string-to-char "foo") эквивалентно (aref "foo" 0), что является ответом @abo-abo - - - но он закодирован в C.