やあ
テンプレートを UTF-8 ページとして定義した場合、それを呼び出すすべてのインクルードにその動作を適用すべきではないでしょうか?
「a ñu is a gnu (this one works)」と出力する単純なテンプレートを作成しました。これは、「ñ」文字を理解して適切に処理できることを意味します。ただし、別のページ (チュパカブラ) を含めるときに、同じ「ñ」文字を含む単語を印刷しようとすると、com.sun.org.apache.xerces.internal.impl.io.MalformedByteSequenceException:invalid byte が発生します。
simple_template.xhtml
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
xmlns:f="http://java.sun.com/jsf/core"
xmlns:h="http://java.sun.com/jsf/html"
xmlns:p="http://primefaces.org/ui"
xmlns:ui="http://java.sun.com/jsf/facelets"
>
<h:head>
</h:head>
<h:body style="background-color:black;" >
a ñu is a gnu (this one works)
<ui:insert name="contenido"/>
</h:body>
</html>
chupacabra.xhtml
<ui:composition
template="/paginas/comun/simple_template.xhtml"
xmlns="http://www.w3.org/1999/xhtml"
xmlns:f="http://java.sun.com/jsf/core"
xmlns:h="http://java.sun.com/jsf/html"
xmlns:ui="http://java.sun.com/jsf/facelets"
xmlns:p="http://primefaces.org/ui"
xmlns:dabit="http://java.sun.com/jsf/composite/components">
<ui:define name="contenido">
<h:form>
añoo (this one wont work)
</h:form>
</ui:define>
</ui:composition>