明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 6472|回复: 13

[2011] [原创]cad2011文字以\中文bug的修复!

  [复制链接]
发表于 2010-7-29 11:01 | 显示全部楼层 |阅读模式
  修复大部分乱码文字,只有个别无法处理..xshrimp  2010.7.29
 

本帖子中包含更多资源

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

x
发表于 2010-7-29 13:53 | 显示全部楼层
这么牛的小程序?收藏了
发表于 2010-7-29 19:15 | 显示全部楼层
我发了电子邮件给autodesk成都办事处,叫他们将我的电子邮件转发给北京的商务部,现在还在等待结果,你这个是临时的解决方法,还是希望官方的解决方案,不过,真的很感谢你,你的响应速度比autodesk快多了,我发现这个bug的当天就给成都办事处打了电话的,他们最初给我的回复是不修复这个bug,后来我打电话给了北京autodesk的商务部,他们叫我发电子邮件给他们,他们处理,不知道结果怎么样,等待中。。。。。。。谢谢你的解决方案,谢谢。
发表于 2010-7-30 10:16 | 显示全部楼层
感谢分享
发表于 2010-7-30 14:15 | 显示全部楼层
 \U+FF 后面跟随的应该是两位数的16进制 (10进制从0~255)吧?
直接获取此两位字符后,转码hex2dec 为 10进制数再 chr 一次就可以了吧?改为 ssget 方式批量处理更好些.

另外此程序只能处理字符串中第一处乱码,后面的没有处理,建议改进循环控制,一次全部修正乱码
发表于 2010-7-30 16:53 | 显示全部楼层
本帖最后由 作者 于 2010-8-3 15:13:12 编辑

修改了一下,结果还是有问题, 程序流程似乎正常,但不同位置情况的 "*\汉字*" 处理结果依然有些异常,请教大家如何修正?


这是2004中的正常状态:


这是2011中使用本程序修正后的状态(图中云线是处理后依然有问题之处):

本帖子中包含更多资源

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

x
发表于 2010-7-30 17:10 | 显示全部楼层
 调试中发现 使用 vla-object 方式访问到对象的 TextString 值和直接 entget 方式获得的值是不同的, entget 获得的TextString 中含有 "\\U+FF" 代码 ,vla-object方式没有,故不能用vla-object获得的TextString来判断是否存在乱码...


发表于 2010-7-30 17:13 | 显示全部楼层
没看懂楼主程序中的 "\\U+00" 和 "\\M+5", 请教楼主其具体含意?谢谢!
 楼主| 发表于 2010-7-31 16:22 | 显示全部楼层
没什么,有些乱码是无法复原的.这个才是真正的bug
例如  "\错误"   输入后2004打开依然为乱码.这个是无法修复的.
 楼主| 发表于 2010-7-31 17:09 | 显示全部楼层
本帖最后由 作者 于 2010-8-2 8:51:49 编辑

cad中文本 "\乱码演示"

(vl-string->list  "\\乱码演示") -> (92 194 210 194 235 209 221 202 190) 这个是正确的数据.

2004中无论用entget或者vla方式获取的都是"\\乱码演示"

 

2010

1.vla方法:

(vl-string->list (vla-get-TextString  (vlax-ename->vla-object (car (entsel)))))

->(92 63 210 194 235 209 221 202 63)

对比一下.正确(92  194  210 194 235 209 221 202   190)

             错误(92  63  210 194 235 209 221 202   63  )

             估计根据这个数据无法恢复...

2.entget方法:

(vl-string->list  (cdr (assoc 1 (entget (car (entsel))))))

->(92 92 85 43 70 70 67 50 210 194 235 209 221 202 92 85 43 48 48 66 69)


根据上述对比方法写的修正程序.此为 "\\U+00" 和 "\\U+FF" 出处.

有些文字即使在cad2004中也无法修复.例如文字"\错误"等...

本帖子中包含更多资源

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

x
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-4-26 14:49 , Processed in 0.317911 second(s), 28 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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