明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 1390|回复: 11

[提问] 代码多用版本的烦恼(为什么)?

[复制链接]
发表于 2022-12-5 19:10:14 | 显示全部楼层 |阅读模式
本帖最后由 尘缘一生 于 2022-12-5 19:13 编辑

一段代码,判定不同CAD版本,从而支持,为什么这么处理,繁体CAD,还是乱码?

难道整篇幅 lisp 需要编码系统?,还有 utf-8啥的什么道理?





本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

x
"觉得好,就打赏"
还没有人打赏,支持一下
发表于 2022-12-6 08:22:22 | 显示全部楼层
以前用05英文版,发现有些变量设置与中文版不同,否则运行出错。

繁体版没用过,未知。
发表于 2022-12-6 08:48:15 | 显示全部楼层
除了简体中文之外,只用过08英文版的
假如是CAD语言版本不同,应该是要从LISP的编码格式出发吧?
ANSI通用性大一点
发表于 2022-12-6 15:43:36 | 显示全部楼层
文件全部都是01储存的,编码规则不正确的话,这些01就不能正确的识别为字符,当然基于字符的解释器也就不能获得正确的代码,也就不能运行。
UTF-8是Win7开始才流行的,老版本可能会不支持,用UNICODE相对安全些。
发表于 2022-12-6 16:18:57 | 显示全部楼层
你用的这个繁体不对,正宗的繁体,在简体系统里看起来是乱码
 楼主| 发表于 2022-12-6 17:02:26 | 显示全部楼层
小菜123 发表于 2022-12-6 16:18
你用的这个繁体不对,正宗的繁体,在简体系统里看起来是乱码

大师,这很可能,我就是在百度,简转繁体处理了下。
发表于 2022-12-6 18:23:10 | 显示全部楼层
本帖最后由 你有种再说一遍 于 2022-12-6 18:27 编辑

低版本cad的lisp解析器已经被编译为指定编码(中文就是GBK,也就是你看到的GB18030,GB18030是GB2312的扩展),所以动态执行lisp的时候需要指定此编码.
而cad2021?支持了UTF8.
UTF8是先告诉你多长,再动态获取后面的字节,具体原理搜索一下就行,会发现他们真聪明.
回到cad,但是高低版本不一样的编码策略,就需要放弃动态执行了,不过也可以通过飞诗编辑器之类的转换再发送到cad执行.
顺带一提,如果在低版本的图纸上面写了utf8字符串,那么会出现断言失败,例如写到图层名上面,lisp每次获取图层名都会不一样,带有乱码后缀.
因此我换到c#去玩了...
发表于 2022-12-7 14:59:35 | 显示全部楼层
ANSI 并不是统一的编码格式,而是对应不同的国家或地区的语言的编码,
如简体中文的 ANSI,对应的是 cp936 gb2312字符集
繁体中文的ANSI对应的是big5 ,cp950字符集
日文的ANSI对应的是shiftjis字符集

所以你在简体中文中显示的繁体字是gb2312字符集,不是big5字符集。

为了统一编码,unicode 字符集应运而生。保存文件时 unicode 字符集一般使用 utf8 编码标准 保存。
 楼主| 发表于 2022-12-7 20:02:14 | 显示全部楼层
vitalgg 发表于 2022-12-7 14:59
ANSI 并不是统一的编码格式,而是对应不同的国家或地区的语言的编码,
如简体中文的 ANSI,对应的是 cp936  ...

我希望贴出一段,繁体中文版的LISP源码样例出来,就一看明白。
 楼主| 发表于 2022-12-7 20:05:24 | 显示全部楼层
自贡黄明儒 发表于 2022-12-6 08:22
以前用05英文版,发现有些变量设置与中文版不同,否则运行出错。

繁体版没用过,未知。

到哪里搞到一段繁体中文LISP样例代码出来?

点评

highflybird帖子  发表于 2022-12-8 07:56
您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|CAD论坛|CAD教程|CAD下载|联系我们|关于明经|明经通道 ( 粤ICP备05003914号 )  
©2000-2023 明经通道 版权所有 本站代码,在未取得本站及作者授权的情况下,不得用于商业用途

GMT+8, 2024-11-16 04:44 , Processed in 0.159317 second(s), 27 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表