Re: [xsl] Representing EBCDIC code 37 in xslt

Subject: Re: [xsl] Representing EBCDIC code 37 in xslt
From: Michael Kay <mike@xxxxxxxxxxxx>
Date: Mon, 30 Dec 2013 18:13:03 +0000
xsl:output-character defines Unicode codepoints to be output; these will be
subject to encoding in the same way as any other character. You can't use this
to bypass Unicode-to-EBCDIC conversion.

First find out whether your XSLT processor supports EBCDIC code page 37 as a
serialization encoding. If it does, you should be able to use something like

<xsl:output encoding="ebcdic-037"/>

(No idea what the correct name is!)

If it doesn't support this encoding, you will need to generate output in say
utf-8 or iso-8859/1, and transcode this to ebcdic-037 by some kind of
converter running as a postprocessing phase after XSLT transformation.

Michael Kay
Saxonica

On 30 Dec 2013, at 14:50, a kusa <akusa8@xxxxxxxxx> wrote:

> Hello:
>
> I have an issue with representing EBCDIC code 37 in XSLT. I am
> converting an XML file to a flat file and ftping from unix to
> mainframe. I am not sure where to start debugging this issue. Here is
> the issue:
>
> I have latin-1 special characters like the plusminus sign, the
> registered trademark, fraction one half that I need to convert to
> EBCDIC code 37 values. I am using xslt 2.0. So I have an output
> character map defined for these special characters. So I have:
>
> <xsl:output-character character="." string="&#175;"/>
>
> As you can see from my example, I have tried the exact EBCDIC value.
> When this converts into a text file which is what I am doing, I get
> this strange gibberish character in the output -B..
>
> But when I view it on the mainframe server, it is converted to a period(.)
>
> I have tried using encoding in utf-8 and iso-8859-1. Nothing works.
>
> Is there anything I can do in XSLT 2.0 to convert these characters
> into the right format that mainframe accepts?
>
> Any tips?
>
> Thanks.

Current Thread