来自西门子技术支持热线的故事:为什么老外的面板项目升级失败

已锁定

西门子Lemon

官方工程师

  • 帖子

    126
  • 精华

    9
  • 被关注

    153

论坛等级:侠客

注册时间:2010-03-19

普通 普通 如何晋级?

来自西门子技术支持热线的故事:为什么老外的面板项目升级失败

2969

7

2010-04-16 10:09:52

昨天有个客户要把一个老外的项目从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里的德语部分,再做转换
来自西门子技术支持热线的故事:为什么老外的面板项目升级失败 已锁定
编辑推荐: 关闭

请填写推广理由:

本版热门话题

SIMATIC WinCC / Panel

共有32569条技术帖

相关推荐

热门标签

相关帖子推荐

guzhang

恭喜,你发布的帖子

评为精华帖!

快扫描右侧二维码晒一晒吧!

再发帖或跟帖交流2条,就能晋升VIP啦!开启更多专属权限!

  • 分享

  • 只看
    楼主

top
您收到0封站内信:
×
×
信息提示
很抱歉!您所访问的页面不存在,或网址发生了变化,请稍后再试。