Index: /Users/alex/Library/OpenSource/cocoon/blocks/cocoon-html/cocoon-html-impl/src/main/java/org/apache/cocoon/transformation/NekoHTMLTransformer.java =================================================================== --- /Users/alex/Library/OpenSource/cocoon/blocks/cocoon-html/cocoon-html-impl/src/main/java/org/apache/cocoon/transformation/NekoHTMLTransformer.java (revision 531860) +++ /Users/alex/Library/OpenSource/cocoon/blocks/cocoon-html/cocoon-html-impl/src/main/java/org/apache/cocoon/transformation/NekoHTMLTransformer.java (working copy) @@ -18,6 +18,7 @@ import java.io.ByteArrayInputStream; import java.io.IOException; +import java.nio.charset.Charset; import java.util.HashMap; import java.util.Iterator; import java.util.Map; @@ -30,8 +31,8 @@ import org.apache.avalon.framework.parameters.Parameters; import org.apache.cocoon.ProcessingException; import org.apache.cocoon.environment.SourceResolver; +import org.apache.cocoon.xml.IncludeXMLConsumer; import org.apache.cocoon.xml.dom.DOMBuilder; -import org.apache.cocoon.xml.IncludeXMLConsumer; import org.apache.excalibur.source.Source; import org.apache.xerces.parsers.AbstractSAXParser; import org.cyberneko.html.HTMLConfiguration; @@ -42,10 +43,13 @@ /** * Converts (escaped) HTML snippets into tidied HTML using the NekoHTML library. - * This transformer expects a list of elements, passed as comma separated - * values of the "tags" parameter. It records the text enclosed in such - * elements and pass it thru Neko to obtain valid XHTML. - * + * This transformer expects a list of elements, passed as comma separated values + * of the "tags" parameter. It records the text enclosed in such elements and + * pass it thru Neko to obtain valid XHTML. + * + * Automatically sets the encoding of the local system as default-encoding + * parameter for nekohtml to work properly + * * @version $Id$ */ public class NekoHTMLTransformer @@ -94,7 +98,7 @@ Attributes attr) throws SAXException { super.startElement(uri, name, raw, attr); - if (this.tags.containsKey(name)) { + if (this.tags.containsKey(name)) { this.startTextRecording(); } } @@ -174,7 +178,7 @@ super.setup(resolver, objectModel, src, par); String tagsParam = par.getParameter("tags", ""); if (getLogger().isDebugEnabled()) { - getLogger().debug("tags: " + tagsParam); + getLogger().debug("tags: " + tagsParam); } this.tags = new HashMap(); StringTokenizer tokenizer = new StringTokenizer(tagsParam, ","); @@ -193,6 +197,7 @@ private static HTMLConfiguration getConfig(Properties properties) { HTMLConfiguration config = new HTMLConfiguration(); config.setProperty("http://cyberneko.org/html/properties/names/elems", "lower"); + config.setProperty("http://cyberneko.org/html/properties/default-encoding", Charset.defaultCharset().name()); if (properties != null) { for (Iterator i = properties.keySet().iterator();i.hasNext();) { String name = (String) i.next();