Две вещи, на которые нужно обратить внимание при переходе на PB10 или выше.Строки в вызовах внешних функций и любых данных , читаемых в файлах , таких как ini-файлы или функции чтения файлов.Причина в том, что PB10 была версией, в которой строки основывались на Unicode вместо ANSI .
Вы начнете сталкиваться с проблемами, когда ваши строковые данные содержат символы мусора, когда они работали нормально.Хорошая новость заключается в том, что PB предоставляет способ преобразования строки в требуемый формат, и для обоих есть функции.
Кодировкой PB10 по умолчанию является UTF-16 с прямым порядком байтов (EncodingUTF16LE!)
В PB10 функциями PowerScript Len (), Left (), 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.
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 и выше, но ее очень просто решить, как только вы ее выясните.
Не думаю, что проблемы с вашей базой данных связаны с кодировкой, но это возможно.Если вы видите мусорные символы, возможно, у вас несоответствие с кодировкой.