先分清是哪一种「乱」。DXF 的几何部分(坐标、组码)是纯 ASCII,永远不会乱;会乱的只有文字内容那一段。这段在传统 DXF 里按单字节方式存,文件本身并不写明用了哪种中文编码,全靠读写双方默契。「DXF查看器」对此做了自动识别,按 GBK 或 UTF-8 试解,多数图纸能正常显示。剩下显示不对的,几乎都出自导出方的三类专业软件设置。

三类真实表现和各自成因

一是中文全是奇怪汉字,比如「缂栧彿」这种。这是 UTF-8 字节流被当成 GBK 拆读的典型指纹。原因是绘图软件那一侧已按 UTF-8 输出,而某个环节又用本地 ANSI 去解释。

二是只有少数几个字变成问号或方块,其余正常。这是目标编码装不下这个字。生僻姓氏、特殊符号、全角标点在不同版本字符集之间并不完全互通,属于覆盖范围问题,不是解码错。

三是数字英文全对、中文整段消失或位置错乱。多半是文字压根没被输出:DXF 转 SVG 或 PDF 时不输出 TEXT 与 MTEXT 实体。这种情况在查看器里还能看到字,一到转换结果里就没了 —— 别拿这个当乱码去调编码。

定位是谁的责任,两步就够

  1. 换一方打开对照。同一份 DXF,原绘图软件里正常、查看器里乱码,问题在编码识别;两边都乱,说明文件里存的字节已经错了,回导出方重导才是解法。
  2. 看乱码形态归类。整片怪字指向编码不匹配;个别字变符号指向字库覆盖;整段不见指向实体不支持。三种表现修法完全不同,别照搬别人的设置项。

让 CAD 那边怎么导出

AutoCAD 及国产 CAD 的中文 DXF 通常按本地 ANSI 一族写出,兼容性最好。若对方用的是较新的软件或非中文系统,请他确认两点:保存 DXF 时是否选了高版本 Unicode 路径;图面文字是否被放进了块定义。第二点很关键 —— 查看器不会显示 INSERT 块参照及其内部图元,写在块里的文字看起来就像凭空丢了,跟编码无关。虚线一律画成实线、图层颜色不保留也是同样道理,属于显示范围限制。

底线判断

不要为了修乱码去手工替换文件里的字节,改一处会让后面的偏移全错位,整份文件直接报废。也不要指望在线工具替你猜出一个没人见过的私有编码,它只处理 GBK 与 UTF-8 两种常见情况。如果反复确认是导出方的问题,最省事的办法是让对方同时给一份 PDF:看图不需要任何 CAD,也不会再有编码歧义。格式本身的差别见 DXF 和 DWG 有什么区别。