OP7移植到OP77B出现问题
刘玉蓉
发布于2014-10-28 17:42
135
0
标签:
现我手头有一个OP7的屏坏了,需移植到OP77B里面,原OP7是用德语编的多语言项目,可我用WinCC Flexible 2008 移植的过程当中出现了如下红色错误提示:“HmiText.xml ""+"",hexadecimal value 0x10,is an invalid character. Line 3540,position 20.
佳答案
看看下面的帖子:
《来自西门子技术支持热线的故事:为什么老外的面板项目升级失败 》:
转载:
昨天有个客户要把一个老外的项目从Protool 转到WinCC flexible,但是转换失败了。输出窗口能看到下面的信息:
16:18:08:45 常规 HmiText.xml"<奇怪字符>",hexadecimal value 0x01, is an invalid character. line 10950, position 34.
原因: 此Protool项目有德语字符。
为什么会有这个问题呢。这要从Windows对非 ascii 码的支持说起。
早先,Windows系统只支持ascii,8位编码,255个字符,主要是西欧字符集。这当然不够用。
中国人也很厉害,Dos下有UCDOS,WindowsNT时代有中文之星等等。后来微软也觉得不扩展对其它语言的支持不利于他的业务,自己搞多语言系统,于是中文之星之类的软件就消失了。
这个时期用的扩展字符集(GB2312,Big5之类的)占2个字节,高字节首位为1,以此区别ascii码。2个字节依旧不能支持多语言的并存,所以Windows要求使用者设定默认语言,就是当操作系统遇到到高字节首位为1的字符时,按什么字符集来解释和现实。XP里区域设置高级选项里有个“非 Unicode选项”,就是说遇到非Unicode字符时用什么字符集来解释。
这又冒出一个Unicode,为什么呢?因为全球化越来越厉害,大家发现一个系统里要么现实这种语言,要么现实那种,非常不方便,于是开发了Unicode的标准。至于Unicode怎么编码咱们不谈,知道两点就够用了:
1、Unicode是可变长编码,一个字符可以用很多字节表示
2、Unicode理论上可以兼容所有语言字符,甚至数学符号、音乐符号、化学符号都已经放进去了
好,回过来说开始的问题,Protool是非Unicode软件,WinCC flexible几乎是完全Uncode软件。转换程序必须要同时识别非Unicode的字符和Unicode字符。这个识别必须基于操作系统的功能。但是如果Windows遇到非Unicode字符(比如德语)就按汉语来解释,自然就出错了。
两个解决方案:
1、改变系统的默认语言(非Unicode语言)设置为德语,转换完成再改汉语
2、删掉Protool里的德语部分,再做转换
参考资料:https://www.ad.siemens.com.cn/club/bbs/post.asp?b_id=5&a_id=678868