|
Having a very unpleasant problem with scrambled local characters in program call input parameters. Maybe someone can advise me of how to solve it. PC program makes a call to a AS/400 program passing some parameters as a unsigned char array, that is actually a packed structure. So it contains bytes, some of which are actually chars, some are numbers. PC has always one and the same local settings. Probably my 3 AS/400 have different "regional settings". Result is that depending on the particular machine I must use 3 different manually built encoding tables. We have only 8 local characters, so building this table itself is not a problem. But the problem is managing 3 different versions of the same program, that work on particular machine. For exampl I have letter Ä (capital A with 2 dots above it) that comes to one machine as 0x0A and to another machine as 0x24. So on one machine I must have a code row : for (i = 0; i < 20; i++) if (Buffer[i] == 0x0A) ; Buffer[i] = 'Ä' ; and on another machine : for (i = 0; i < 20; i++) if (Buffer[i] == 0x24) ; Buffer[i] = 'Ä' ; Stupid, isn't it?! Is there a chance to find some proper AS/400 parameter, may be some system variable or whatever, that can be tested in order to select proper comparison right side? Should say here, that I understand, that probably correct way is to take care of this encoding is to push it to PC side, but this is not an option for certain reasons... TIA, Jevgeni Astanovski
As an Amazon Associate we earn from qualifying purchases.
This mailing list archive is Copyright 1997-2024 by midrange.com and David Gibbs as a compilation work. Use of the archive is restricted to research of a business or technical nature. Any other uses are prohibited. Full details are available on our policy page. If you have questions about this, please contact [javascript protected email address].
Operating expenses for this site are earned using the Amazon Associate program and Google Adsense.