[xsl] Outputting UTF-8

Subject: [xsl] Outputting UTF-8
From: "Mark Wilson pubs@xxxxxxxxxxxx" <xsl-list-service@xxxxxxxxxxxxxxxxxxxxxx>
Date: Sat, 25 Mar 2017 14:39:14 -0000
While writing and testing my XSL stylesheet, the direct output was in UTF-8. However, as soon as I switched to result-document, I got garbage characters for diacritics from my original xml. That is, for 'ZC<rich', I get ' ZCB<rich'. Except for the absence of UTF-8, everything else works fine. I am assuming that I have declared result-document incorrectly, so have not included the input or full stylesheet. Below is the declaration:

<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"; xmlns:xs="http://www.w3.org/2001/XMLSchema"; exclude-result-prefixes="xs" version="2.0">


<xsl:strip-space elements="*"/>

    <xsl:template match="/">
        <xsl:for-each select="collection('../xml/?select=*.xml')">
            <xsl:apply-templates/>
        </xsl:for-each>
    </xsl:template>

<xsl:template match="adlibXML">
<xsl:variable name="file-name-out" select="concat('../work/', substring-before((tokenize(document-uri(/),'/'))[last()], '.'), '.csv')"/>
<xsl:result-document href="{$file-name-out}" encoding="UTF-8" method="text">
<xsl:apply-templates/>
</xsl:result-document>
</xsl:template>


<!-- other templates -->
</xsl:stylesheet>

Mark Wilson

Current Thread