16335181 发表于 2009-4-15 22:14:00

谁能解决中文乱码?我有字体

<p>我公司做国内项目,有中文字体,出现乱码的原因</p><p>很奇怪,联系过AUTODESK,解决方法是先用06存成04,再用07开就好了,的确好过一阵子,但最近不知道出什么问题,又出现乱码并且解决不了,特上网求助!望高人解决<br/></p>

dunkel 发表于 2009-4-15 23:28:00

你这个应该是汉字半字符乱码. 即通过特殊的方法将乱码部分去除一个字节 (半个汉字), 后面的就会显示正常. 当然, 前面就会丢掉一个汉字. 比如附件的这个字符串, 将第一个 ? 替换为 0xCB 字节就可以恢复 '缩' 字; 第二个 ? 替换为 0xC9 就可以恢复 '由' 字. 只是 ACAD 里无法进行这样的操作; 或者需要通过特制的程序来做. <br/>问题的来由, 我觉得是 ACAD 的 MTEXT 编辑器对汉字支持有问题. 我自己一向是坚持 "能不使用 MTEXT 就不用", 所以对它引发的些问题并不熟悉. 刚才稍微测试了下, 只要所使用的字型定义里有非&nbsp;FONT_UNIFONT 类的 SHX 字体, 就会以 "System:" 来作为基本编辑器字体, 而它又没有关联到汉字上的, 所以输入的汉字都会被转换和加上修饰. 在进行再编辑时, 甚至将汉字完全拆解成了两个 Unicode 字符, 这简直就是场灾难, 因为这个拆解转换过程对部分字符来说是不可逆的. 即便是使用的 FONT_UNIFONT 类 SHX 字体, 对汉字部分也一样, 只是使用了缺省的系统字体, 一般就是宋体. 这时文字里会多了些控制码, 虽然一般对文字表现不会有太大的不良影响. <br/>所以, 如果要避免这样问题的产生, 一个是尽可能地使用 TEXT 类文字, 而不是 MTEXT. 本来嘛, 除了些特殊情况, MTEXT 完全没有必要. 其次, 即使在使用 MTEXT 时, 也尽可能地使用 "宋体" 这样的 Windows 类字体. 这时除非主动, 一般不会给你附加上些乱七八糟的修饰控制代码进去.

16335181 发表于 2009-4-16 14:46:00

dunkel发表于2009-4-15 23:28:00static/image/common/back.gif你这个应该是汉字半字符乱码. 即通过特殊的方法将乱码部分去除一个字节 (半个汉字), 后面的就会显示正常. 当然, 前面就会丢掉一个汉字. 比如附件的这个字符串, 将第一个 ? 替换为 0xCB 字节就可

<p>谢谢楼上的耐心解答,昨夜通宵加班,没来得及看,呵呵</p>

moqiuj 发表于 2009-4-16 15:30:00

页: [1]
查看完整版本: 谁能解决中文乱码?我有字体