2011-06-06 122 views
0

我已經爲PB 6.5中的應用程序構建了一個加密函數,它工作正常,它需要一個人的數據,對其進行加密並將結果字符串存儲在數據庫中。另一方面,我可以在PB 10.5中構建的應用程序中訪問這些數據(因爲這兩個應用程序共享數據庫)。PowerBuilder - 不同的編碼PB 6.5 - PB 10.5

問題是我無法正確恢復數據:( 我GOOGLE了它,我已經閱讀了一些文檔,我知道PB6.5使用ANSI編碼和PB10.5使用UTF-16LE,所以我嘗試了函數I在文檔中發現的,看看有什麼我得到:

lb_text = Blob(original_string, EncodingANSI!) 
ls_string1 = String(lb_text, EncodingANSI!) 
ls_string2 = String(lb_text, EncodingUTF16LE!) 

ls_string1給了我一個字符串,它是非常相似,PB6.5和ls_string2原始編碼字符串給了我一個字符串,它是「方塊字字符的序列':㔐

我的問題是:

有沒有一種方法來標準化不同版本的PB之間的編碼?或...

是否有一個函數(在PB10.5中)將字符串轉換爲我需要的編碼?

+0

Standardize:no。函數:ummm .. String(...,EncodingANSI!)?也許你對問題的解釋有一些缺失,因爲這聽起來像你有解決方案。讓我們知道。 – Terry 2011-06-06 22:15:06

回答

0

的問題是在我的加密功能:我用一個字符串(ascii_string)從1到255 ASCII字符編碼數據,但我發現有在第1位「奇怪的」字符,直到31

所以,PB6.5我所做的:

for i=32 to 255 
    ascii_string += string(char(i)) 
next 

和PB 10.5:

for i=32 to 256 
    aux = Blob(char(i)) 
    ascii_string += String(aux, EncodingANSI!) 
next 

和它的作品每一個版本!