PowerBuilder - 不同编码PB 6.5 - PB 10.5

时间:2011-06-06 10:17:42

标签: encoding character-encoding powerbuilder

我已经为PB 6.5中的应用程序构建了加密函数,它工作正常,它接收一个人的数据,加密它并将结果字符串存储在数据库中。另一方面,我可以在PB 10.5中构建的应用程序中访问此数据(因为两个应用程序共享数据库)。

问题是我无法正确恢复数据:( 我用谷歌搜索了一些文档。我知道PB6.5使用ANSI编码而PB10.5使用UTF-16LE,所以我尝试了我在文档中找到的功能,看看我得到了什么:

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中)将字符串转换为我需要的编码?

1 个答案:

答案 0 :(得分:0)

问题在于我的加密功能:我使用了一个字符串(ascii_string)和1 {255的ASCII个字符来编码数据,但我发现在1到31之间的位置有“奇怪的”字符。 / p>

所以,在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

它适用于每个版本!