Here is a final -- from my point of view anyway -- update on this.

I wrote in the PMR:

I had a further thought on this. I think the issue is very simple. I    
don't think what you are doing between 1027 and 1208 is round trip      
conversion -- I think it's enforced subset conversion. If you read the  
definitions of roundtrip and enforced subset in the CDRA manual, what   
you are doing between 1027 and 1208 does not conform to the definition  
of roundtrip, but it conforms perfectly to the definition of enforced   
subset.                                                                 
                                                                        
Or look at it this way: suppose you DID offer enforced subset between   
1027 and 1208: how would it be any different from what you do now for   
technique 'R'?

Here is the reply:

In reviewing our exchanges over the last few days, I think I            
misunderstood your objective in opening this PMR to begin with.  I      
thought your intent was to understand the meaning of "roundtrip".  In   
retrospect, I think more importantly you were reporting a problem in    
roundtrip conversions.  Now I think I see the disconnect our respective 
positions on the issue.                                                 
                                                                        
Considering the cases you cited where characters are all converted to   
x'1A' (sub character), this is because those characters are unassigned  
in that code page.  The following link (which will have to be pasted    
back together) shows that for 41, 6A, etc. the chart is blank.          
                                                                        
ftp://ftp.software.ibm.com/software/globalization/gcoc/attachments/CP010
27.pdf                                                                  
                                                                        
To help resolve the concern, we have updated the Glossary entry for     
Roundtrip to say the following:                                         
                                                                        
Round trip. Encoding that occurs when every code                        
point in the source CCSID maps to a unique code point                   
in the target CCSID. Using round trip tables ensure the                 
capability of reversing the conversion, and recovering                  
the complete original source datastream.                                
                                                                        
Note: If the conversion is to Unicode, and the source code point        
is undefined by the source standard it should not be used.              
Because of this that point will become a substitution                   
code and will not round trip.                                           
                                                                        
This will appear in the next revision of Unicode Services User's Guide  
and Reference.

And here was my final update:

Thanks! I was trying to figure out the disconnect between my            
internalized definition of round trip and the behavior of Unicode       
Services in this situation.                                             
                                                                        
I'm not unhappy with your response. It will let me resolve the          
disconnect between the documentation I am responsible for and your      
documentation.                                                          
                                                                        
I think changing Unicode Services so that the current conversion        
behavior persisted but was reclassified as Enforced Subset would be a   
better response, but it's your product, not mine.                       
                                                                        
Take care, and thank you, and again, I think Unicode Services is a      
great product. It is a boon to productivity: why should every           
programmer have to re-invent EBCDIC to ASCII translation?               
                                                                        
I will close the SR.

Charles

-----Original Message-----
From: IBM Mainframe Discussion List [mailto:[email protected]] On Behalf
Of Charles Mills
Sent: Tuesday, June 12, 2012 8:32 AM
To: [email protected]
Subject: Anyone a Unicode Services expert? -- roundtrip conversion

My understanding of "roundtrip conversion" is that every code point in the
from CCSID translates to a unique (possibly "meaningless") code point in the
to CCSID so that if for example a customer is so foolish as to transmit, for
example, an object deck from z/OS to a PC in "text" format, and then
transfer it back to z/OS the same way, he will have a good object deck. 

I am running Kirk Wolf's excellent showtrtab with the command showtrtab -s
1027 -t 1208 -q R

The results I see include the following:

3F:  1A 
40:  20 
41:  1A

Several other EBCDIC code points also translate to ASCII sub, 0x1a. So the
question is if multiple EBCDIC code points all translate to 0x1a, how the
heck is this a round trip translation?

(I'm not alleging a bug in showtrtab. I am getting the same results with my
code and ran showtrtab as a reality check and a clearer example.)

Where am I going wrong?

Charles 

----------------------------------------------------------------------
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to [email protected] with the message: INFO IBM-MAIN

----------------------------------------------------------------------
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to [email protected] with the message: INFO IBM-MAIN

Reply via email to