There may be something wrong with the z/OS Unicode Conversion Services in your environment, or your default process codepage may not be setup right.
First, find out what CCSIDs that you are trying to use, by adding the "-vv" switch as the first argument after the hostname in "todsn-ssh".
For example:
copy ta00405.txt con: | todsn-ssh -pw xxxx
t330@mvsoz.hiw.com -vv -s iso
8859-1 -r ta00405.ptf
To stderr, you should get a message like this:
RecordExtractor.initialize(): sourceCodePage="iso8859-1"(819), targetCodePage="IBM-1047"(1047), lineTermRule=5, roRule=0, fixedLenRecords=false
This tells you that you are converting from CCSID(819) to CCSID (1047).
If you are not getting IBM-1047 as the target, then your user/process default codepage is set to something else. If that's the case, try adding "-t ibm=1047" to see if that works. The "LANG=C" environment variable is typically used to enable IBM-1047 as the default codepage. This is documented in the USS Customization manual.
Then, you can do the "DISPLAY UNI,ALL" console command to verify that the IBM Unicode conversion services are enabled.
You can also look at the messages at IPL to see:
CEE3739I LANGUAGE ENVIRONMENT INITIALIZATION COMPLETE
IEE252I MEMBER CUNUNIXX FOUND IN SYS1.PARMLIB
CUN2005I CONVERSION ENVIRONMENT SUCCESSFULLY INITIALIZED
This will tell you what CUNUNIxx parmlib member is being used.
Its bad to see the following:
CUN2046I AN EMPTY UNICODE ENVIRONMENT HAS BEEN ESTABLISHED
The manual SA22-7649 "Support For Unicode: Using Conversion Services"
is the reference.
If you need help, please post a reply with the above information.