I have the following in my struts.xml <action name="testutf8" class="TestXml"> <result name="success" type="xslt"> <param name="exposedValue">utf8</param> <param name="location">testxml.xsl</param> </result> </action>
My testxml.xsl file looks like this: <?xml version="1.0" encoding="UTF-8"?> <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> <xsl:output method="xml" /> <xsl:template match="result"> <xsl:copy-of select="." /> </xsl:template> </xsl:stylesheet> My TestXML.java file looks has the following public Class TestXml { private String utf8="hèllo world"; // a string with utf-8 character, getters+setters omitted here public String execute throws Exception { return "success"; } } When I request /testutf8 I get the following in the browser: XML Parsing Error: not well-formed Location: http://localhost:8080/testutf8 Line Number 1, Column 48:<?xml version="1.0" encoding="UTF-8"?><result>h�llo world</result> -----------------------------------------------^ It seems the utf-8 character is not being handled properly. How can I make the xslt result type handle the utf-8 character correctly?