无法在lisp中将字符串/字符转换为字节

时间:2012-10-05 21:35:55

标签: lisp babel

我正在使用read-line读取一些数据,我想将其转换为字节数组。 babel:string-to-octet大部分都有效,除非字符\ byte更大(超过200),在这种情况下,它返回两个数字。例如,如果使用ú的字符为babel:string-to-octet,则返回(195 185)而不是250,这正是我要查找的内容。我在巴贝尔尝试了一些编码,但似乎都没有。

如果我使用read-byteread-sequence,则会在250中读取。但是出于向后兼容性的原因,我只剩下使用read-line了,我想知道在使用babel:string-to-octetú转换为{{1}时是否存在我遗漏的内容}}

我正在使用ccl 1.8 btw。

1 个答案:

答案 0 :(得分:0)

大多数common-lisp实现支持超过256个字符。根据鸽子原则,这意味着您无法将所有字符转换为单个字节。

如果您只想将lisp内部字符代码0-255转换为字节,那么char代码将执行您想要的操作。但是,结果将是实现定义的,因为实现不需要在内部使用任何特定的编码。