Emacs Lisp:获取字符的ASCII值

10

我想将Emacs中的字符转换为数字ASCII码,类似于在C语言中强制转换char a = 'a'; int i = (int)a。我尝试过string-to-number和其他一些函数,但似乎都不能使Emacs将字符最终读取为数字。

有什么最简单的方法可以做到这一点吗?

3个回答

16

要获取表示字符的ASCII码数字--正如Drew所说的那样--在字符之前加上一个问号并计算该表达式

?a ==> 97

数字出现在minibuffer中,使用C-u将其写在表达式后面。

反之亦然

(insert 97)将在缓冲区中插入一个"a"。

顺便说一句,在某些情况下需要引用该字符

?\"将计算为34


1
跟进问题,如果我现在想将97转换为字符'a',该怎么办? - Cameron
1
尝试例如:(插入97)(打印97)(消息“%c” 97)(评估97) - Andreas Röhler

8

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

内置了函数string-to-char,可以实现您想要的功能。(string-to-char "foo")相当于(aref "foo" 0),这就是@abo-abo的答案 --- 但它是用C编码的。


6

字符串是一个数组。

(aref "foo" 0)

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接