<Swing Dev> RFR JDK-8244324: RTFEditorKit does not display some of Japanese characters correctly

Prasanta Sadhukhan prasanta.sadhukhan at oracle.com
Fri May 15 07:04:43 UTC 2020


Thanks Vyom. You could have proposed the patch yourself only...

Anyways, I have tested with Font2DTest with all unicodes for default 
Latin and it seems ok. Will you be able to test in other CJK locales 
(as  I am not sure of the unicodes being displayed correctly) just to 
ensure they are not adversely affected?

Regards
Prasanta
On 14-May-20 9:01 PM, Vyom Tiwari wrote:
> Hi prasanta,
>
> Code changes look OK to me, although I am not a expert in this area, 
> but  the same patch resolves the issue at our end.
> Thanks,
> Vyom
>
> On Thu, May 14, 2020 at 4:20 PM Prasanta Sadhukhan 
> <prasanta.sadhukhan at oracle.com <mailto:prasanta.sadhukhan at oracle.com>> 
> wrote:
>
>     Hi All,
>
>     Please review a fix for an issue seen whereby RTFEditorKit used to
>     read Japanese characters reads some garbage characters.
>
>     The default character set used for the RTF document is set to
>     "ansi" in our RTFReader.java.
>     And share/classes/javax/swing/text/rtf/charsets/ansi.txt code
>     table has undefined values , i.e., 91-98 and A0 are "0". According
>     to javax/swing/text/rtf/RTFParser.java, If the ch is 0,
>     handleText() is not called
>
>     As per http://www.biblioscape.com/rtf15_spec.htm#Heading8,
>
>     /RTF file includes the following Character set in its header : //
>     //<character set> //
>     // (\ansi | \mac | \pc | \pca)? \ansicpgN? //
>     //Where, //
>     //\ansicpgN This keyword represents the default ANSI code page
>     used to perform the *Unicode to ANSI conversion* when writing RTF
>     text. N represents the code page in decimal. This is typically set
>     to the default ANSI code page of the run-time environment (for
>     example, \ansicpg1252 for U.S. Windows). The reader can use the
>     same ANSI code page to convert ANSI text back to Unicode. This
>     keyword should be emitted in the RTF header section right after
>     the \ansi, \mac, \pc or \pca keyword. /
>
>     Possible values include those in the following table.We can make
>     use of ansicpgN (can switch ANSI text to Unicode), define it to
>     refer to the latin1TranslationTable [RTFParser inherits it from
>     AbstractFilter] which does not include undefined areas instead of
>     ansi's translationTable which has undefined areas as seen above.
>
>     Bug: https://bugs.openjdk.java.net/browse/JDK-8244324
>
>     webrev: http://cr.openjdk.java.net/~psadhukhan/8244324/webrev.0/
>
>     Note: I am not able to create a testcase for this as it involves
>     reading from rtf file which probably is copyrighted and inserting
>     Japanese characters as a string (instead of rtf file) was not working.
>
>
>
> -- 
> Thanks,
> Vyom
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://mail.openjdk.java.net/pipermail/swing-dev/attachments/20200515/a1633567/attachment.htm>


More information about the swing-dev mailing list