Details
-
Bug
-
Status: Open
-
Major
-
Resolution: Unresolved
-
1.1.3
-
None
-
None
-
Windows XP, JBoss 4.0.3SP1
Description
East Asia characters support using UTF-8 encoding (request and response). When rendering into a <t:buffer>, some data conversion corrupts the encoding.
-------
It was <t:buffer> that caused the encoding problem. I used <t:buffer> in my code.
I tried the following simple example without <t:buffer>, it worked fine without problem in typing/displaying back East asia characters. If I wrap the code with <t:buffer>, and output the buffer, it will not work, displaying East Asia characters back as question marks.
I thought <t:buffer> is just a piece of memory without any character conversion. How does <t:buffer> work exactly? what OutputStream is being used? is it possibly involving data conversion? If yes, is there any workaround?
Thanks!
-----------without <t:buffer>, works!---
<%@ page contentType="text/html; charset=UTF-8"%>
<%@ taglib uri="http://java.sun.com/jsf/html" prefix="h"%>
<%@ taglib uri="http://java.sun.com/jsf/core" prefix="f"%>
<%@ taglib uri="http://myfaces.apache.org/tomahawk" prefix="t"%>
<HTML>
<head>
</head>
<f:view>
<h:outputText value="#
<h:form>
<h:inputText value="#{testBean.name}
"/>
<h:commandButton value="Submit" />
</h:form>
</f:view>
</HTML>
------------------------------------use <t:buffer>, does not work ----
<%@ page contentType="text/html; charset=UTF-8"%>
<%@ taglib uri="http://java.sun.com/jsf/html" prefix="h"%>
<%@ taglib uri="http://java.sun.com/jsf/core" prefix="f"%>
<%@ taglib uri="http://myfaces.apache.org/tomahawk" prefix="t"%>
<HTML>
<head>
</head>
<f:view>
<t:buffer into="#
<h:outputText value="#{testBean.name}" />
<h:form>
<h:inputText value="#{testBean.name}"/>
<h:commandButton value="Submit" />
</h:form>
</t:buffer>
<h:outputText value="#{buf}
" escape="false" />
</f:view>
</HTML>