You picked 3 code pages (1047, 37, and 500) that all have the same
visible characters for hex 7B, 5B, and 7C - #$@. And like John implied,
anything checking for a valid dataset name is going to check for 7B, 5B,
and 7C. Programs (usually) don't care what the visible character
happens to look like on the PC side. So for example, someone in England
might see #£@ for those same 3 hex codes if they are using code page
285. And the name IND£FILE might show up for them.
When you start up ISPF it asks the terminal emulator various things,
including what code page it is running. That gets put in (at least) the
&ztermcid variable so programs can peek at it if they want. One case
I've seen is DB2 SPUFI that complains if it doesn't like the current
code page.
On 7/5/2023 12:04 PM, Paul Gilmartin wrote:
On Wed, 5 Jul 2023 14:16:27 -0400, Matt Hogstrom wrote:
I recently ran into a question that I didn’t know the answer to. The question
was, what code page are dataset names and other z/OS artifacts coded in? Since
the special characters like #, $ and @ are different in codepages 1047, versus
037, etc does z/OS use one code page for these artifacts and translate if a
data set is created with JCL created with 1047 and is later accessed using an
037 code page for instance ?
How would it tell? Would you expect a PRAGMA CCSID on the JOB statement?
Or the SUBMIT command recognizing the CCSID of your terminal?
I see no difference among these/ Are there others?
513 $ printf '#$@' | iconv -f UTF-8 -t CP1047 | od -tx1
0000000 7b 5b 7c
0000003
514 $ printf '#$@' | iconv -f UTF-8 -t CP037 | od -tx1
0000000 7b 5b 7c
0000003
515 $ printf '#$@' | iconv -f UTF-8 -t CP500 | od -tx1
0000000 7b 5b 7c
0000003
I suspect someone out there has experience and knows the answer.
I hate EBCDIC! Why isn't a basic character set invariant!?
----------------------------------------------------------------------
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN