OP7移植到OP77B出現(xiàn)問(wèn)題
劉玉蓉
發(fā)布于2014-10-28 17:42
135
0
標(biāo)簽:
現(xiàn)我手頭有一個(gè)OP7的屏壞了,需移植到OP77B里面,原OP7是用德語(yǔ)編的多語(yǔ)言項(xiàng)目,可我用WinCC Flexible 2008 移植的過(guò)程當(dāng)中出現(xiàn)了如下紅色錯(cuò)誤提示:“HmiText.xml ""+"",hexadecimal value 0x10,is an invalid character. Line 3540,position 20.
佳答案
看看下面的帖子:
《來(lái)自西門子技術(shù)支持熱線的故事:為什么老外的面板項(xiàng)目升級(jí)失敗 》:
轉(zhuǎn)載:
昨天有個(gè)客戶要把一個(gè)老外的項(xiàng)目從Protool 轉(zhuǎn)到WinCC flexible,但是轉(zhuǎn)換失敗了。輸出窗口能看到下面的信息:
16:18:08:45 常規(guī) HmiText.xml"<奇怪字符>",hexadecimal value 0x01, is an invalid character. line 10950, position 34.
原因: 此Protool項(xiàng)目有德語(yǔ)字符。
為什么會(huì)有這個(gè)問(wèn)題呢。這要從Windows對(duì)非 ascii 碼的支持說(shuō)起。
早先,Windows系統(tǒng)只支持ascii,8位編碼,255個(gè)字符,主要是西歐字符集。這當(dāng)然不夠用。
中國(guó)人也很厲害,Dos下有UCDOS,WindowsNT時(shí)代有中文之星等等。后來(lái)微軟也覺(jué)得不擴(kuò)展對(duì)其它語(yǔ)言的支持不利于他的業(yè)務(wù),自己搞多語(yǔ)言系統(tǒng),于是中文之星之類的軟件就消失了。
這個(gè)時(shí)期用的擴(kuò)展字符集(GB2312,Big5之類的)占2個(gè)字節(jié),高字節(jié)首位為1,以此區(qū)別ascii碼。2個(gè)字節(jié)依舊不能支持多語(yǔ)言的并存,所以Windows要求使用者設(shè)定默認(rèn)語(yǔ)言,就是當(dāng)操作系統(tǒng)遇到到高字節(jié)首位為1的字符時(shí),按什么字符集來(lái)解釋和現(xiàn)實(shí)。XP里區(qū)域設(shè)置高級(jí)選項(xiàng)里有個(gè)“非 Unicode選項(xiàng)”,就是說(shuō)遇到非Unicode字符時(shí)用什么字符集來(lái)解釋。
這又冒出一個(gè)Unicode,為什么呢?因?yàn)槿蚧絹?lái)越厲害,大家發(fā)現(xiàn)一個(gè)系統(tǒng)里要么現(xiàn)實(shí)這種語(yǔ)言,要么現(xiàn)實(shí)那種,非常不方便,于是開發(fā)了Unicode的標(biāo)準(zhǔn)。至于Unicode怎么編碼咱們不談,知道兩點(diǎn)就夠用了:
1、Unicode是可變長(zhǎng)編碼,一個(gè)字符可以用很多字節(jié)表示
2、Unicode理論上可以兼容所有語(yǔ)言字符,甚至數(shù)學(xué)符號(hào)、音樂(lè)符號(hào)、化學(xué)符號(hào)都已經(jīng)放進(jìn)去了
好,回過(guò)來(lái)說(shuō)開始的問(wèn)題,Protool是非Unicode軟件,WinCC flexible幾乎是完全Uncode軟件。轉(zhuǎn)換程序必須要同時(shí)識(shí)別非Unicode的字符和Unicode字符。這個(gè)識(shí)別必須基于操作系統(tǒng)的功能。但是如果Windows遇到非Unicode字符(比如德語(yǔ))就按漢語(yǔ)來(lái)解釋,自然就出錯(cuò)了。
兩個(gè)解決方案:
1、改變系統(tǒng)的默認(rèn)語(yǔ)言(非Unicode語(yǔ)言)設(shè)置為德語(yǔ),轉(zhuǎn)換完成再改漢語(yǔ)
2、刪掉Protool里的德語(yǔ)部分,再做轉(zhuǎn)換
參考資料:https://www.ad.siemens.com.cn/club/bbs/post.asp?b_id=5&a_id=678868