One Star

bad character conversion AS400 CCSID 500

Hi,
I have a tAS400Input linked to a tMySqlOutput.
I can't find the correct character set. For example, source character è is read as {.
Source CCSID is 500.
How to set the correct source and target Character set please ?
TOS 3.1
Regards
15 REPLIES
One Star

Re: bad character conversion AS400 CCSID 500

Hi,
We have exactly the same problem. We tried with an IBM JDBC client and it works well, but we can't find out how to get correct results in Talend. We wonder if the jdbc driver for AS400 is up to date in Talend...
So we solved this problem with "replace..." custom code, but it's slow.
We are also interrested in finding a solution.
Regards
Seventeen Stars

Re: bad character conversion AS400 CCSID 500

hi all,
perhaps those tips and trick could help you (it's in french).
I was looking for some clue due to some problem of encoding like you !
++
One Star

Re: bad character conversion AS400 CCSID 500

It didn't help us...
Special characters typed in AS400 as "CHAR FOR BYTE" are well converted, but special character typed as "CHAR" in AS400 are not well converted.
We tried some change in windows locales but nothing worked.
If anyone has an idea...
Regards
Employee

Re: bad character conversion AS400 CCSID 500

Hi
Did you try to specify String for this specific CHAR ?
And also try to change the encoding type into the Advanced properties component ?
Best regards;
One Star

Re: bad character conversion AS400 CCSID 500

Yes, we tried diffrent encoding type in the Advanced properties component.
And the Talend/Java data type is already String.
Regards
Employee

Re: bad character conversion AS400 CCSID 500

Hi,
Have you tried "Custom encoding" like CP037 or something like this ?
One Star

Re: bad character conversion AS400 CCSID 500

Yes we tried "CP037", "CP500", "CP0500" and it doesn't change anything.
"Modèle" is always transfered as "mod}le".
Regards
One Star

Re: bad character conversion AS400 CCSID 500

And it 's strange because the encoding type parameter does not seem to change anything, you can even put "xxxx" as a custom encoding type !
One Star

Re: bad character conversion AS400 CCSID 500

no idea ?
One Star

Re: bad character conversion AS400 CCSID 500

Hi
A precision on this pb.
On the used AS400 profile, the CHRIDCTL parameter is on *SYSVAL.
When I changed this value to 500, I had the same problem (é to { and è to }) on the screen display of my AS400 screen, problem that wasn't present with the *SYSVAL value.
In my Talend job, the problem remains, whatever the CHRIDCTL value is.
Maybe Talend use a default CHRIDCTL parameter that doesn't fit.
If yes, how can I change this ?
Thanx
Employee

Re: bad character conversion AS400 CCSID 500

Hi,
What's your JRE or JDK version.
If you have a version 1.6 from SUN, you have a chance to have the charset.jar to involve ENCODING and PAGE CODE.
We have solved and fixed some trouble for IBM MVS Ebcdic FILE to read CP037 data content.
So please to check if in your %JRE_PATH%/lib you have a charset.jar around 6Mo.
Else, I can package it and give it via the Forum or Email.
Best regards;
One Star

Re: bad character conversion AS400 CCSID 500

Thanks for your answer.
I have version jre1.6.0_07 with a charsets.jar file (6439 Mo) in lib directory.
I didn't have a %JRE_PATH% environnement system variable, but I add one.
But It didn't change anything.
The "encoding type" parameter in the tAS400Input has really no effect, you can set it to anything you want, the result is the same !
Another information:
For AS400 columns of type "A" - Alphanumeric, decoding is OK, we get correct results.
But with AS400 columns of type "O" - OPEN, special characters are not well decoded in java.
"é" are transformed as "{".
Regards
One Star

Re: bad character conversion AS400 CCSID 500

Hi
Anybody has an idea ?
Employee

Re: bad character conversion AS400 CCSID 500

tks cantoine! it solved my issue!
One Star

Re: bad character conversion AS400 CCSID 500

Hi,
I have same problem with TOS 5.3.2 (32 bits). Euro symbol is replaced with ? char. I use JRE 1.6.0_45 (32 bits).
My source is TAS400Input with a SQL query.
How to get correct characters without coding?
Regards,
Olive