hothua2020 发表于 2020-7-1 11:33:15

字符串判断一个bug

(= (substr "中文123" 1 1) "") 返回结果是T,英文正常。

llsheng_73 发表于 2020-7-1 11:57:50

本帖最后由 llsheng_73 于 2020-7-1 12:00 编辑

严格说这个也不叫bug, 全角字符它是2个字节的,只取其中一个字节,虽然返回了一个字符串,但是它无法直接显示出来,因为它不是一个完整的字符,只是一个完整字符的一半。。。
当然也可以算BUG,因为对参数检查 不够仔细,把不应该进行比较的东西进行了比较,并且返回了错误的结果,所以也可以算是一个bug
真要比较这半个字符是否和另一个字符串相同,应该用ASCII码来比较

hothua2020 发表于 2020-7-1 12:39:40

关键不应该等于空字符串

yxp 发表于 2020-7-1 14:14:32

单字节大于 127 的编码,可能 cad 都按空字符处理,与空格的ascii码相同。

汉字“中” 的 gb2312 编码为 1101 0110 1101 0000

tryhi 发表于 2020-7-1 16:57:48

严格来说不算BUG,人家规定好了用法,不按规定走出问题就是你的问题了,比方说(/ 3 2)返回1,你觉得这是BUG吗?
页: [1]
查看完整版本: 字符串判断一个bug