菜鸟求问这乱码是怎么一回事?
本帖最后由 iaso2h 于 2018-10-15 21:39 编辑我的所有.lsp里面包含有中文的代码怎么在cad里面使用的时候会有乱码呢?无法理解(눈‸눈)郁闷死了都……
(defun C:ask ()
(princ "测试"))
(defun change ()
(command "._tseoutline" SS1)
(while (= 1 (getvar "cmdactive"))
(command pause))
(command "._pedit" "l" "" "w" "50" ""))
(defun C:SS (/ ss1)
(cond
(eq (getvar "clayer") "A-E-轮廓")
(progn
(setq ss1 (ssget))
(change))
(not (eq (getvar "clayer") "A-E-轮廓"))
(command "._tseoutline" SS1)))
因为你的编辑器默认使用了 utf-8 编码,而 AutoCAD 2021以前的版本中 ,vlide 不支持 utf-8编码,所以才乱码。
AutoCAD 2021 开始,AutoLISP(函数)开始支持 unicode,相应的 AutoLISP 源码文件也默认使用 utf-8 编码(旧的也能用啊),而且调试需要使用 VS Code(这个能支持lisp文件使用 utf-8或者其他编码)。
建议所有AutoLISP 程序员核查代码,以支持unicode的 AutoLISP(主要是字符串处理函数需要修改,还要判断AutoCAD版本与 LISPSYS系统变量的当前值等)。 e2002 发表于 2020-6-16 10:37
因为你的编辑器默认使用了 utf-8 编码,而 AutoCAD 2021以前的版本中 ,vlide 不支持 utf-8编码,所以才乱 ...
编译好的vlx文件受影响吗?比如,我是在CAD2021版上用VS Code采用的UTF-8格式编辑调试,没有问题,然后生成的编译文件vlx,在CAD2021用没有问题,但是在CAD2010加载这个vlx后,提示命令未知命令 windows 10的 记事本是支持 utf-8 保存与打开的。
但 AutoCAD 2020 (不管是什么语言)中的 vlide 是不支持 utf-8的,所以用它打开utf-8的文档,铁定出线中文乱码。
你要么用编辑器打开utf-8文档后改用gb18030编码保存,然后再用AutoCAD 2020或之前的vlide打开;要么换用 AutoCAD 2021 ,并使用 vscode 作为编辑调试LISP的环境。
由于我是用英文版,所以也无法VLIDE直接正常读写中文
唯有应用(unicode)统一码替代。
(defun C:ask ()
(princ "\U+6D4B\U+8BD5"))
"A-E-\U+8F6E\U+5ED3" = "A-E-轮廓"
也希望有大师指点
期待大师的解答。。。。。。 通常(princ "\n kkk"),\n后面加一空格,就可以消除一些乱码。 自贡黄明儒 发表于 2018-10-16 07:55
通常(princ "\n kkk"),\n后面加一空格,就可以消除一些乱码。
还是不行呢,把(princ "\n 测试中文") 保存成.lsp文件,加载了还是乱码呢:'( 将 "A-E-轮廓"改为 "A-E- 轮廓"或者 " A-E-轮廓"即可消除。 你的是64位系统吗?我的32位复制过来有乱码. 1.在VLSIP编辑器里新建一个文档任意输入几个中文字
2.保存文件为.lsp格式(注:此文件的编码为CP936)
3.把自己的源码复制到这个文件里保存一下就可以完成转码
END……
用VLISP在读取就能正常显示中字了 我也一直被这个问题困扰,但把单独的插件集合到一一起时就不出现乱码了,以前的XP系统没有遇到过。郁闷。 刚试过了,8#楼的方法可以解决楼主的问题,也解决了我很长时间的困扰。在CAD的VLISP编辑器里编辑的就可以。因此先建个文件保存,随便敲击几个字符,保存后再打开,删除随便敲的那些字符,再把你要使用的插件源码复制进去,保存,问题解决。