2011-08-26 47 views
0

後,我從PB7轉換爲10.5我在老 存儲SQL Server數據庫阿拉伯字符的問題,它表明在具有類似ÓíÇÑÉÕÛíÑÉ沒有意義的DataWindow爲奇怪的符號人物 ?編碼的問題轉換後PB7到PB10.5

+0

請參閱http://stackoverflow.com/questions/7092378/how-to-solve-this-arabic-language-problem-in-sybase-powerbuilder-6-and-7。這可能會幫助你。 –

回答

0

移植到PB10或更高版本時需要注意兩件事情。字符串外部函數調用和任何數據讀取文件,如ini文件或文件讀取功能。 PB10的原因是字符串基於統一碼而不是ANSI

你會開始遇到問題,你的字符串數據有垃圾字符時,它會正常工作。好消息是PB提供了一種將字符串轉換爲所需格式的方法,並且有兩種功能。

默認PB10編碼是UTF-16,小端(EncodingUTF16LE!)

在PB10中,PowerScript的功能LEN(),左(),MID()和Right()是基於所有Unicode字符並相當於現有的LenW(),LeftW(),MidW()和RightW()函數。

爲了以字節或ASCII字符而不是Unicode字符處理字符串,已添加了一組新的LenA(),LeftA(),MidA()和RightA()函數。當應用'A'函數時,PowerBuilder將根據機器的語言環境將Unicode字符串轉換爲DBCS字符串,然後應用該操作。是任何文件的讀取/寫入,因爲圍繞PB10它去了unicode。 PB將所有現有的函數轉換爲Unicode並創建新版本的函數。因此,在PB10 Powerscript函數Len(),Left(),Mid()被更改爲unicode和新函數Len。

​​

如果您不添加EncodingANSI,會發生什麼情況! ?您從外部文件獲得的所有數據都將是不可讀的垃圾字符。這是升級到PB10及更高版本時最重要的問題,但解決問題後解決起來非常簡單。

我不認爲你的數據庫問題與編碼有關,但它是可能的。如果您看到垃圾字符,則可能與編碼不匹配。

+0

我在外部函數或文件中讀取字符串時沒有任何問題,我在存儲SQL Server數據庫中的阿拉伯語數據時遇到問題,數據庫表中的數據將字符顯示爲奇怪的符號,當我讀取這些數據時,這些符號沒有意義像ÓíÇÑÉÕÛíÑÉ使用PB7它看起來不錯並且可讀,當使用PB10.5讀取它時,它看起來不可讀 – PBDev