Re: [xsl] 16-bit entities converted to "?" by XSLT

Subject: Re: [xsl] 16-bit entities converted to "?" by XSLT
From: "Andrew Welch" <andrew.j.welch@xxxxxxxxx>
Date: Sun, 7 Dec 2008 15:09:32 +0000
>>> I've tried <xsl:output encoding="UTF-16"> and various other things, but
>>> nothing seems to work. Is there an easy way to fix this so I can just
>>> display 16-bit characters?
>>
>>
>> How do you run the transformation exactly? How do you serve the
>> transformation result to the browser, from a local file or from a HTTP
>> server? If the document is loaded from a HTTP server have you checked the
>> HTTP Content-Type header whether it might have a charset parameter that does
>> not match the encoding of the document?
>
> The transform is a output filter for a servlet. The servlet generates
> XML which gets transformed into HTML and squirted from the server back
> to the browser. The Content-Type is "text/html; charset=UTF-8". I've
> also tried <xsl:output encoding="UTF-16">, as I mentioned, in which
> case it comes out as "text/html; charset=UTF-16", but this makes no
> difference as far as the way the characrer references get converted
> into question marks.

There's probably some byte-to-character (or vice-versa) conversion
happening using the platform default encoding (windows-1252 on
Windows, different for the other platforms).

You can set a different default encoding using the "file.encoding"
switch, so locate where you set the jvm args for your appsever and
add:

-Dfile.encoding=UTF-8



-- 
Andrew Welch
http://andrewjwelch.com
Kernow: http://kernowforsaxon.sf.net/

Current Thread