自贡黄明儒 发表于 2014-5-29 16:47:51

这个字体是怎么回事呢?

这个字体是怎么回事呢,有时钢板\U+03B48,有时δ8?

ZZXXQQ 发表于 2014-5-29 21:15:20

文字的不同表示方式。论坛有这样的讨论。

edata 发表于 2014-5-29 22:28:43

unicode码是个问题。上次的钢筋符号也是这样。我估计是acad版本处理unicode字符的问题,默认是用Unicode码表示特殊字体的字符,如果直接表示这个符号,得需要字体的支持,但是字体不属于ACAD的一部分,因此需要一个缓存过程,当我们打开文件的时候,才开始读取字体文件,而ACAD先读取的是文件中的text文本,后取字符,所以不能立即显示字符。而编辑是在调用字体之后,已经打通了字符与字体的关系,显示也就是正常的字符。
个人观点,仅供参考。

自贡黄明儒 发表于 2014-5-30 08:05:02

edata 发表于 2014-5-29 22:28 static/image/common/back.gif
unicode码是个问题。上次的钢筋符号也是这样。我估计是acad版本处理unicode字符的问题,默认是用Unicode码表 ...

言之有理,其实我担心的是(entget (car (entsel)))取得文本,如果"钢板\\U+03B48"这种形式,在处理的时候8之前的数字会不会当作数字

ll_j 发表于 2014-5-30 09:17:32

自贡黄明儒 发表于 2014-5-30 08:05 static/image/common/back.gif
言之有理,其实我担心的是(entget (car (entsel)))取得文本,如果"钢板\\U+03B48"这种形式,在处理的时候 ...

如果想对文本内容进行处理,这是需要考虑的,但多数情况下是没有问题的,在这个字符不是标准字库中所存在的字符,这种情况会发生(比如自定义的钢筋符号等),但如果这是标准字符,一般系统会自动处理的,也就是说,系统会自动识别为某个字符,而不是代码。
我理解,出现这种显示异常的情况可能有几种情况:
1.系统对多字节字符的支持情况,早期的系统是由西文开始的,后来先汉化,再后来采用真正意义的中文版,即使这样,仍旧在多字节的处理方面仍旧是软肋(多字节的标准也太多),有时会出现兼容问题,典型的兼容问题是Win2000和Win98之间的系统字库不完全兼容,在当时的acad中会不能显示低版本上标识的系统字体文字。
2.acad对多字节字符的显示问题,这个问题和前面的情况差不多,也是早期版本的影响,并且,即使高版本,每个版本之间的兼容性也有差异。
3.acad对多字节代码页的解释问题,如汉化,大陆和台湾的汉化是不同的,相同字符的代码也不同,虽然从某种意义上来说Unicode代码页可以对不同的代码页进行“统一”,但实际情况并不完全如人意,实际上,在大陆版的acad上,一般的代码是以GBK码存储的,代码和字符之间可能是直接转换的,也可能是经Unicode转换换的,这取决于软件的算法,在算法不尽完善的时候,出现任一层次的代码都是可能的。顺便说一句,δ的GBK代码是A6C4,所以,显示成“\M5+A6C4”也是可能的。

自贡黄明儒 发表于 2014-5-30 09:27:58

ll_j 发表于 2014-5-30 09:17 static/image/common/back.gif
如果想对文本内容进行处理,这是需要考虑的,但多数情况下是没有问题的,在这个字符不是标准字库中所存在 ...

长老,我知道你基本功相当扎实,就是在等你为我排忧解难呢.谢谢呀

mikewolf2k 发表于 2014-5-30 16:37:44

以前出现2000版前有个代码页转换问题,比如说在系统区域美国下写的中文,切换到系统区域为中国时,中文就会变成\U+03B48这种样子,直接打开图片不动的话,显示是没问题的,用文本框看内容就是\U+1234。如果存盘了就会不可恢复,哪怕系统区域再改回去。所以以前有个工具叫做代码页转换,需要经过这个处理过的dwg文件才能在其它区域继续使用。此问题跟文件和软件本身无关。
后面的acad可能对这个问题有过别的解决方式。以上信息仅供参考。

sdaulj 发表于 2014-11-16 23:15:25

路过,学习了,一直困扰我的问题
页: [1]
查看完整版本: 这个字体是怎么回事呢?