Encoding 将PB7转换为PB10.5后的编码问题
在我从PB7转换到10.5之后,我在旧版本中遇到了问题 存储SQL server数据库阿拉伯字符,它显示字符Encoding 将PB7转换为PB10.5后的编码问题,encoding,fonts,powerbuilder,arabic,Encoding,Fonts,Powerbuilder,Arabic,在我从PB7转换到10.5之后,我在旧版本中遇到了问题 存储SQL server数据库阿拉伯字符,它显示字符 在datawindow中,作为没有意义的奇怪符号,如ÓíÉÕíÉÛíÉ?迁移到PB10或更高版本时,需要注意两件事。外部函数调用中的字符串和文件中读取的任何数据,如ini文件或文件读取函数。原因是PB10是基于Unicode而不是ANSI的字符串版本 当字符串数据正常工作时,您将开始遇到字符串数据包含垃圾字符的问题。好消息是PB提供了一种将字符串转换为所需格式的方法,并且两者都有函数 默
在datawindow中,作为没有意义的奇怪符号,如ÓíÉÕíÉÛíÉ?迁移到PB10或更高版本时,需要注意两件事。外部函数调用中的字符串和文件中读取的任何数据,如ini文件或文件读取函数。原因是PB10是基于Unicode而不是ANSI的字符串版本 当字符串数据正常工作时,您将开始遇到字符串数据包含垃圾字符的问题。好消息是PB提供了一种将字符串转换为所需格式的方法,并且两者都有函数 默认的PB10编码是UTF-16,little-endian(编码UTF16LE!) 在PB10中,PowerScript函数Len()、Left()、Mid()和Right()都基于Unicode字符,与现有的LenW()、LeftW()、Mid()和RightW()函数等效 为了将字符串作为字节或ASCII字符而不是Unicode字符进行操作,添加了一组新的LenA()、LeftA()、MidA()和RightA()函数。应用“A”函数时,PowerBuilder将根据计算机的区域设置将Unicode字符串转换为DBCS字符串,然后应用该操作。是对文件的任何读/写,因为在PB10前后它转到了unicode。PB将所有现有函数转换为Unicode,并创建了新版本的函数。因此,在PB10 Powerscript函数Len()、Left()、Mid()中更改为unicode和新函数Len
Blob lbl_data
lbl_data = Blob("Hello World!", EncodingANSI!)
ls_data = String(lbl_data, EncodingANSI!)
// PB10 and higher
li_FileNum = FileOpen("MyFile.txt", TextMode!, Read!, EncodingANSI!)
// PB9 and lower you didn't need EncodingANSI!
//li_FileNum = FileOpen("MyFile.txt", TextMode!)
如果不添加EncodingANSI!会发生什么?从外部文件获取的所有数据都将是无法读取的垃圾字符。这是升级到PB10或更高版本时最重要的问题,但一旦你弄明白了,就很容易解决
我认为您的数据库问题与编码无关,但这是可能的。如果看到的是垃圾字符,则可能与编码不匹配。请参阅。这可能会对您有所帮助。我在读取外部函数或文件中的字符串方面没有任何问题,我在SQL server数据库中存储阿拉伯数据方面有问题,数据库表中的数据将字符显示为奇怪的符号,与使用PB7读取此数据时没有任何意义,看起来很好,可读性很好,当使用PB10.5阅读时,它似乎不可读