Uploaded image for project: 'MyFaces Tomahawk'
  1. MyFaces Tomahawk
  2. TOMAHAWK-45

<t:buffer> does not support East Asia characters using UTF-8 encoding

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Open
    • Major
    • Resolution: Unresolved
    • 1.1.3
    • None
    • Buffer
    • 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="#

      {testBean.name}" />
      <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="#

      {buf}">
      <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>

      Attachments

        1. utf8.jsp
          0.8 kB
          Mathias Werlitz

        Activity

          People

            Unassigned Unassigned
            javaone9 Dave
            Votes:
            1 Vote for this issue
            Watchers:
            3 Start watching this issue

            Dates

              Created:
              Updated: