Tapestry
  1. Tapestry
  2. TAPESTRY-1294

Tapestry does not set an output encoding which prevents Unicode content from being output correctly

    Details

    • Type: Bug Bug
    • Status: Closed
    • Priority: Major Major
    • Resolution: Fixed
    • Affects Version/s: 5.0
    • Fix Version/s: 5.0.5
    • Component/s: tapestry-core
    • Labels:
      None
    • Environment:
      Container: Tomcat 5.5.20 or jetty 6.1
      OS: Winxp Sp2
      Language: Simplified Chinese

      Description

      1. The following problem is only in Tapestry-5.0.2:
      I input chinese words into a form in Login page, and then turn to Start page. Start page can't display chinese.
      For example, I input chinese "中国" in Login page, and I just see "中国" in Start page.
      It looks like the data of form is encoded in ascii, not in UTF-8.
      The problem still exists even I change the app locale to "zh".
      2.The following problems are both in Tapestry-5.0.1 and Tapestry-5.0.2:
      (1) When the content of HTML template has non english words, such as chinese, the page can't display the words correctly.
      We can only see "?" in the page, but english content is ok.
      (2) When the page class returns a chinese string directly, we can only see "?" in the page at runtime.
      For example:
      In Start.html: $

      {hello}

      In Start.java: public String getHello()

      {return "中国( some chinese words)!";}

      The start page will display "??( some chinese words)!" at runtime.

        Issue Links

          Activity

          Hide
          LinuxBoy added a comment -

          jasongreen (at javaeye.com) has modified some T5 source files, including RequestImpl.java, ResponseImpl.java, MessageSourceImpl.java, and adding a class named UTF8Properties.java, to improve chinese support.
          The files mentioned above are all in codefiles.zip file.

          Show
          LinuxBoy added a comment - jasongreen (at javaeye.com) has modified some T5 source files, including RequestImpl.java, ResponseImpl.java, MessageSourceImpl.java, and adding a class named UTF8Properties.java, to improve chinese support. The files mentioned above are all in codefiles.zip file.
          Hide
          Howard M. Lewis Ship added a comment -

          The provided "patch" didn't come with test cases, so I was forced to start from scratch. I'm replicating most of what T4 does in this respect. Page meta data will define the content type and (if the type does not specify a charset) then the charset will be obtained as additional meta data.

          Show
          Howard M. Lewis Ship added a comment - The provided "patch" didn't come with test cases, so I was forced to start from scratch. I'm replicating most of what T4 does in this respect. Page meta data will define the content type and (if the type does not specify a charset) then the charset will be obtained as additional meta data.
          Hide
          Howard M. Lewis Ship added a comment -

          Let's see how well this works for you. We now determine the content type and the encoding based on meta data on the page (with a default of "text/html;charset=UTF-8"). For action links and form submissions, we set the request encoding based on the encoding of the page.

          What we're not doing:

          • Setting the request encoding for page render requests (which may be necessary, but it's not always clear what to set the encoding to)
          • Any extra support for reading templates or message catalogs in non-default character sets
          Show
          Howard M. Lewis Ship added a comment - Let's see how well this works for you. We now determine the content type and the encoding based on meta data on the page (with a default of "text/html;charset=UTF-8"). For action links and form submissions, we set the request encoding based on the encoding of the page. What we're not doing: Setting the request encoding for page render requests (which may be necessary, but it's not always clear what to set the encoding to) Any extra support for reading templates or message catalogs in non-default character sets

            People

            • Assignee:
              Howard M. Lewis Ship
              Reporter:
              LinuxBoy
            • Votes:
              0 Vote for this issue
              Watchers:
              2 Start watching this issue

              Dates

              • Created:
                Updated:
                Resolved:

                Development