首页 > 化工知识 > 明明有字体为什么CAD图纸打开中文都显示成问号?

明明有字体为什么CAD图纸打开中文都显示成问号?

时间:2020-07-28 来源:CAD小苗 浏览:

安装卸载文件及输入输出异常、退出基本操作设置界面和显示快捷键视图坐标定位捕捉选择及组图块字体和文字布局和视口标注打印填充外部参照光栅图像图层颜色表格线型二维绘图多段线图形修改三维建模复制粘贴查询面积、长度心得及综合技巧 工具及插件图库及相关资源

今天有网友遇到了一个奇怪的问题,图纸在别人机器上打开汉字都显示正常,但到了他的机器上全都显示为问号,如下图所示。

开始以为是缺字体,将字体全部都拷过来,打开的时候也没有提示缺字体,但文字还是显示为问号,如下图所示。

这个确实有点奇怪,我也无法确认具体原因。如果他的CAD版本和字体跟其他人都一样,那问题应该不在CAD上,可能跟系统环境有关系了,只能远程看了一下。

连接后我看了一下,果然图中所有汉字都显示成了问号,之前看他截图中字体设置也没有大的问题,于是我在命令行输入DWGCODEPAGE,返回的是ANSI_1252,很容易找到了问题的根源。如果是简体中文,图纸的代码页应该是ANSI_936,如下图所示。

我新建了一张空图,代码页仍然是ANSI_1252,这个显然是他的操作系统的区域语言设置出了问题。

打开控制面板的区域语言选项,发现果然如此,区域虽然设置的是中国,但语言设置的是英语(英国),如下图所示。

我点“更改系统区域设置”按钮,将语言设置成中文简体(中国)后,关闭并重新启动他的CAD后,文字打开就可以正常显示成中文了。

估计很多人会跟他一样奇怪,为什么CAD的文字显示还会受操作系统设置的影响?DWGCODEPAGE又是什么?

这个问题我也只是大致知道,要给大家解释清楚还真不容易,大家可能听说过UNICODE和非UNICODE,UNICODE可以更好地支持多语言,关于UNICODE如果大家想了解更多,可以搜一下相关介绍。如果是一些非UNICODE的中文版软件,当区域语言设置为英文时,菜单选项可能都会显示问号或乱码,或者打开文件时文件名都会识别成问号,如下图所示。

AUTOCAD 2007版以前就是非UNICODE的,在英文系统下就无法识别中文的文件名,到了AUTOCAD 2007版以后支持UNICODE了,但图纸和文字本身还是跟语言版本有关系的,尤其是CAD中使用的大字体文件跟图纸的代码页是密切相关的。如果是中文图纸使用的中文大字体,可以正常解析并显示为中文,但如果代码页变了,解析出来的字符就变了,如果在字体文件中找不到对应的字符,就显示成问号了,即使找到了对应的字符,也可能是错的,看上去像乱码。

我原以为AUTOCAD 2007或2008对代码页出来得不好会出现这个问题,但我试了一下2018也是如此。看来CAD对图纸代码页的处理策略跟旧版不同了,旧版的代码页是保存在图纸中的,比如一张日文图纸的代码页是ANSI_932,当一张中文图纸在日文系统上打开并保存,导致代码页变成日文后,回到中文系统的中文版CAD上打开代码页仍会是ANSI_932也会显示乱码或问号。但2007以后CAD图纸打开的时候直接根据系统语言来读取代码页。当系统语言改成英文后,所有图纸包括新建图纸的代码页都变成了ANSI_1252,这种情况如果打开图纸,用操作系统的TTF字体书写的中文是可以正常显示的,但用SHX字体写的中文的就是乱码或问号了,如下图所示。

其实不管图纸本身会有代码页,字体或文字对象也会有代码页,例如我们是可以在同一张图纸里既写中文又写日文的,两者都可以正确显示。

在系统语言设置成英文的状态下,我将大字体设置为bigfont.shx或gbcbig.shx,然后RE,中文也是可以正常显示的,如下图所示。

看来SHX字体也有区别,有些字体在图纸文件代码页不对的情况下也可以正常显示文字,有些则不行。

很多人遇到过图纸中其他文字都正常,但其中某一段出现乱码的情况,如下图所示。

换个低版本,如2004打开图纸并查看一下一下文字内容,看到的会不一样,如下图所示。

这种情况多半是这一段文字的代码页或编码错误了,在保存为低版本的时候使用了UNICODE编码来保存这些文字,最终导致出错,如果有办法在低版本中将这些UNICODE编码恢复成2004能识别的字符编码才行,这种情况CAD软件通常无法解决,最好找找找看有没有其他图纸中有相同的文字,复制粘贴过来吧。

出现这种情况原因我也不清楚,我一致以为跟在CAD高版本保存2004及以下低版本图纸有关,因为这类图纸通常都是2004或2000版图纸。不管是不是这个原因,建议大家保存2007版以上的图纸。

我也没有完全弄清楚UNICODE以及CAD的图纸代码页,文字对象、字体的代码页是如何控制和配合的,大家其实也不必知道这些,只需要知道下面两点:

1、如果系统的区域语言设置不对,可能导致图纸代码页错误,文字显示问号或乱码。解决办法就是到操作系统里将区域和语言改过来。

2、不要将默认保存格式设置成2004及以下版本,避免文字在反复的格式转换过程中出错。

版权:如无特殊注明,文章转载自网络,侵权请联系cnmhg168#163.com删除!文件均为网友上传,仅供研究和学习使用,务必24小时内删除。
相关推荐