Jsf 2 jsf2 facelets:在模板中声明utf-8还不够吗?
HI 我有一个问题,如果我将模板定义为UTF-8页面,那么该行为不应该应用于调用它的所有包含吗 我创建了一个简单的模板,它打印“añu是一个gnu(这个有效)”,这意味着它可以理解并正确处理“ñ”字符。但是,当我包含另一个页面(chupacabra)时,如果我试图打印包含相同“ñ”字符的单词,我会得到一个com.sun.org.apache.xerces.internal.impl.io.MalformedByteSequenceException:无效字节 simple_template.xhtmlJsf 2 jsf2 facelets:在模板中声明utf-8还不够吗?,jsf-2,encoding,utf-8,facelets,Jsf 2,Encoding,Utf 8,Facelets,HI 我有一个问题,如果我将模板定义为UTF-8页面,那么该行为不应该应用于调用它的所有包含吗 我创建了一个简单的模板,它打印“añu是一个gnu(这个有效)”,这意味着它可以理解并正确处理“ñ”字符。但是,当我包含另一个页面(chupacabra)时,如果我试图打印包含相同“ñ”字符的单词,我会得到一个com.sun.org.apache.xerces.internal.impl.io.MalformedByteSequenceException:无效字节 simple_template.xh
<?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>
<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>
añu是gnu(这个有效)
chupacabra.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>
<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>
añoo(这个不行)
您的Facelets文件使用错误的字符编码保存。您需要使用UTF-8保存它们。在Eclipse中,您可以通过窗口>首选项>常规>工作区>文本文件编码设置:
修复后,编辑并重新保存所有模板。即使只有一个包含文件或主模板使用错误的编码保存,那么整个过程仍然会失败
请注意,XML序言
是不必要的。它只告诉XML解析器(读:Facelets的SAX编译器)保存的XML文件的版本和编码。但它已经默认为UTF-8。你可以安全地摆脱它们。这对MSIE浏览器也更友好。您的Facelets文件使用错误的字符编码保存。您需要使用UTF-8保存它们。在Eclipse中,您可以通过窗口>首选项>常规>工作区>文本文件编码设置:
修复后,编辑并重新保存所有模板。即使只有一个包含文件或主模板使用错误的编码保存,那么整个过程仍然会失败
请注意,XML序言
是不必要的。它只告诉XML解析器(读:Facelets的SAX编译器)保存的XML文件的版本和编码。但它已经默认为UTF-8。你可以安全地摆脱它们。这对MSIE浏览器也更友好。可能是编辑器的编码错误。如果您使用的是eclipse open file properties,请参阅chupacabra.xhtmlw的编码,您使用哪个编辑器来编辑/保存Facelets文件?月食?@partlov谢谢partlov。右键单击chupacabra.xhtml,属性,资源,将文本文件编码设置为utf-8,关闭eclipse,运行eclipse-clean,仍然得到相同的异常代码>。如果它比编辑器更有效,我敢肯定。谢谢partlov,我做了balusc建议的更改,现在我可以自由使用ñs和tildes了!也许这只是对编辑器的错误编码。如果您使用的是eclipse open file properties,请参阅chupacabra.xhtmlw的编码,您使用哪个编辑器来编辑/保存Facelets文件?月食?@partlov谢谢partlov。右键单击chupacabra.xhtml,属性,资源,将文本文件编码设置为utf-8,关闭eclipse,运行eclipse-clean,仍然得到相同的异常代码>。如果它比编辑器更有效,我敢肯定。谢谢partlov,我做了balusc建议的更改,现在我可以自由使用ñs和tildes了!