I managed to get ISO-8859-1 xml search results from htdig and display it in a page using an xsl transformation:
 
<%@ page session="false" language="java" contentType="text/html; charset=ISO-8859-1" %>
<%@ taglib uri="http://www.mmbase.org/mmbase-taglib-1.0" prefix="mm" %>
<mm:import id="QueryString"><%= request.getQueryString() %></mm:import>
<mm:formatter xslt="xsl/search.xsl">
<mm:include page="http://10.0.0.1/cgi-bin/htsearch.exe?${QueryString}" />
</mm:formatter>
I use also ISO-8859-1 encoding in the xsl transformation:
 
<?xml version="1.0" encoding="ISO-8859-1" ?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="html" encoding="ISO-8859-1" />
 
This works well when encoding ISO-8859-1 is set in mmbaseroot.xml. However, when I use UTF-8 the ISO-8859-1 characters display garbage. Finally, I managed to display them well using the workaround:
 
<%@ page session="false" language="java" contentType="text/html; charset=ISO-8859-1" %>
<%@ taglib uri="http://www.mmbase.org/mmbase-taglib-1.0" prefix="mm" %>
<mm:import id="QueryString"><%= request.getQueryString() %></mm:import>
<mm:import jspvar="XstlResult">
<mm:formatter xslt="xsl/search.xsl">
<mm:include page="http://10.0.0.1/cgi-bin/htsearch.exe?${QueryString}" />
</mm:formatter>
</mm:import>
<%= new String(XstlResult.getBytes("ISO-8859-1"),"UTF-8") %>
 
It may be that mmbase does not check the encoding in
 
<?xml version="1.0" encoding="ISO-8859-1" ?>
 
when reading xml and treats it as UTF-8 in case mmbaseroot.xml is set to UTF-8.
 
Is this a known bug?
 
Martijn Houtman
 

Reply via email to