明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 8129|回复: 5

dxf中文乱码问题(解决了!)

[复制链接]
发表于 2009-11-18 23:45:00 | 显示全部楼层 |阅读模式
本帖最后由 作者 于 2009-11-20 13:55:42 编辑

收到一张不是AutoCAD的软件生成的dxf图纸,用记事本打开后,版本$ACADVER AC1009,也即是R12,其中有中文单行文字,在记事本中也可以找到相应的中文信息(丙烯罐区,雷达?%d位变送器),但是我用AutoCAD2009打开后发现中文变成乱码。并且我在CAD中查看了相应的中文乱码的属性内容,是±ûÏ©¹ÞÇø和 À×´ïÒ%%dλ±äËÍÆ÷ ,但是我在修改该文字样式的字体为宋体后,可以在这种文字样式下输入中文的单行文字,但是原先的中文还是乱码,只是形状发生了变化而已。

不知什么原因?难道是因为存在系统变量之类的设置?

附件是dxf图纸。

解决办法

对于R12版本,用记事本打开dxf
在AC1009后面加上(表示使用简体中文)
  9
$DWGCODEPAGE
  3
ANSI_936

对于2000以上的版本,将$DWGCODEPAGE后面的ISO8859-1改为ANSI_936

本帖子中包含更多资源

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

x
 楼主| 发表于 2009-11-19 13:48:00 | 显示全部楼层

需要使用软件将dxf文本文件进行转换,转换成unicode编码或这GB2312编码

但是这个软件无法转换R12版本,只能转换R14和2000版本。

不知道R12版本如何解决?

本帖子中包含更多资源

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

x
 楼主| 发表于 2009-11-19 13:54:00 | 显示全部楼层
function XML() {
    [native code]
}
发表于 2009-11-19 14:30:00 | 显示全部楼层

R12,好老的版本了,呵呵

可以试下自己写个转码的?

 楼主| 发表于 2009-11-19 18:39:00 | 显示全部楼层
本帖最后由 作者 于 2009-11-20 8:56:53 编辑

我自己编写了个VBA进行转码

Sub con()

Dim mem() As Byte

fLength = FileLen("D:\自编程序\1.dxf")

ReDim mem(fLength) As Byte

Open "D:\自编程序\1.dxf" For Binary As #2

Get #2, , mem

Close #2

mem = StrConv(mem, vbUnicode, &H804)

svgfilename = "D:\自编程序\2.dxf"

Open svgfilename For Binary As #3

Put #3, , mem

Close #3

End Sub

 本来要实现将1.dxf转为2.dxf的,但是转完后,发现2.dxf打不开了。用记事本打开他们发现内容完全一致,就是二进制代码不一致。

可能是我转码的这一句有问题mem = StrConv(mem, vbUnicode, &H804)

不知道怎么解决。

发表于 2009-11-25 13:13:00 | 显示全部楼层
d
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-11-25 20:24 , Processed in 0.172234 second(s), 25 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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