Emacs Lisp:获得ascii的角色价值

时间:2013-11-08 15:22:10

标签: char elisp ascii

我想将Emacs中的字符转换为数字ascii代码,类似于c中的转换char a = 'a'; int i = (int)a。我已经尝试了string-to-number和其他一些函数,但似乎没有一个函数让Emacs最终将char作为数字读取。

最简单的方法是什么?

3 个答案:

答案 0 :(得分:11)

获取代表角色的ascii-number - 如Drew所说 - 在角色前加上一个问号并评估该表达

?a ==> 97

数字出现在迷你缓冲区中,其中C-u写在表达式后面。

另外反过来

(insert 97)会在缓冲区中插入“a”。

BTW在某些情况下应引用该字符

?\"将评估为34

答案 1 :(得分:6)

字符 Emacs Lisp中的整数。没有单独的字符数据类型。

函数string-to-char是内置的,可以执行您想要的操作。 (string-to-char "foo")相当于(aref "foo" 0),这是@ abo-abo的答案---但它用C编码。

答案 2 :(得分:5)

String是一个数组。

(aref "foo" 0)