Jeanne Waldman created MYFACES-3690:
---------------------------------------

             Summary: Trinidad doesn't support surrogate characters
                 Key: MYFACES-3690
                 URL: https://issues.apache.org/jira/browse/MYFACES-3690
             Project: MyFaces Core
          Issue Type: Bug
            Reporter: Jeanne Waldman
            Assignee: Jeanne Waldman


[Problem Description:]
Create a simple jsf page as below:
<tr:inputText label="Label 1" id="it1"/>
<tr:commandButton text="commandButton 1" id="cb1"/>

In IE7, when we enter a surrogate character, then click submit button,
surrogate character can be correctly displayed when page rendered.

While in FF3, the surrogate character are displayed as 2 characters after
clicked the submit button.
NOTE: If using pre 7 jetty, the surrogate char will disappear (bug in jetty). I 
had to use JDeveloper to reproduce.

[Test Data:]
You can copy a sample surrogate character from:
http://www.unicode.org/cgi-bin/GetUnihanData.pl?codepoint=%F0%A0%80%80

Note: You must install surrogate font in your env to display the surrogate
characters.

[Analysis:]
Check the html source of generated page, the surrogate character is written
into 2 decimal value '&#55360;&#56320;', and Firefox can't recognize these 2
Decimal value as a single surrogate character.

While in IE, it can recognize these 2 decimal value represent a single
surrogate character.

According to
http://www.unicode.org/cgi-bin/GetUnihanData.pl?codepoint=%F0%A0%80%80, the 
decimal value for this surrogate character is 131072, if in html source code,
we write "&#131072;" instead of '&#55360;&#56320;', the surrogate character
can display well in both IE7 and FF3.

Fix:
The fix is to HTMLEscapes and XMLEscapes. if char is high-surrogate, use 
Character.getCodePoint and encode that.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira

Reply via email to