I have experienced a similar problem on our ISeries converting a £ to $ and vice versa. The problem was caused by our application using CCSID 285 UK English, but the batch job that updated the data switched to the iSeries base CCSID of 37 US English. We are using locales because the iSeries serves the whole of europe.
I would suggest checking the CCIDs used in all parts of your application:-
Base CCSID of iSeries
CCSID of iSeries data file/table and field including any temporary files, etc.
CCSID of the job writing the data.