JDK-8133309 : [win10] Some unicode characters do not display any more after upgrading to Windows 10
  • Type: Bug
  • Component: client-libs
  • Sub-Component: 2d
  • Affected Version: 8u51
  • Priority: P3
  • Status: Resolved
  • Resolution: Fixed
  • OS: windows_10
  • CPU: x86
  • Submitted: 2015-08-10
  • Updated: 2017-09-07
  • Resolved: 2015-09-23
The Version table provides details related to the release that this issue/RFE will be addressed.

Unresolved : Release in which this issue/RFE will be addressed.
Resolved: Release in which this issue/RFE has been resolved.
Fixed : Release in which this issue/RFE has been fixed. The release containing this fix may be available for download as an Early Access Release or a General Availability Release.

To download the current JDK release, click here.
JDK 8 JDK 9
8u112Fixed 9 b85Fixed
Related Reports
Relates :  
Description
8u60FULL PRODUCT VERSION :
java version "1.8.0_51"
Java(TM) SE Runtime Environment (build 1.8.0_51-b16)
Java HotSpot(TM) 64-Bit Server VM (build 25.51-b03, mixed mode)

ADDITIONAL OS VERSION INFORMATION :
Microsoft Windows [Version 10.0.10240]

A DESCRIPTION OF THE PROBLEM :
Some unicode characters do not display any more after upgrading to Windows 10, some do.

REGRESSION.  Last worked in version 8u45

ADDITIONAL REGRESSION INFORMATION: 
Was probably also working under 1.8.0_51. I didn't test.

STEPS TO FOLLOW TO REPRODUCE THE PROBLEM :
See demo code.

EXPECTED VERSUS ACTUAL BEHAVIOR :
EXPECTED -
In particular I want to see <html>&#x2611;</html>
ACTUAL -
Empty box.

REPRODUCIBILITY :
This bug can be reproduced always.

---------- BEGIN SOURCE ----------
import javax.swing.*;

public class Y extends JFrame {
/*
\u2610= Empty box
\u2611= Box with check
\u2600, \u26FF= first and last character in code chart "Miscellaneous Symbols"
*/
  final String TEXT= "\u2610 Hello \u2611\u2600\u26FF";

  public Y() {
    setSize(300,150);
    setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
    Box box= Box.createVerticalBox();
    box.add(new JButton(TEXT));
    box.add(new JLabel(TEXT));
    box.add(new JTextField(TEXT));
    add(box);
    setVisible(true);
  }


  public static void main(String args[]) {
    SwingUtilities.invokeLater(Y::new);
  }

}

---------- END SOURCE ----------


Comments
Just been hurt by this problem with Java 8.
29-02-2016

Will this be back ported to Java 8?
15-11-2015

This is not a JDK regression. The symbol in question in the JDK logical fonts comes from MS Gothic. In Windows 10, Microsoft elected to make that an optional install unless Japanese is your language preference or you go install it manually. More information here :- http://answers.microsoft.com/en-us/insider/forum/insider_wintp-insider_perf/fonts-in-windows-10/e856c620-b8b6-4435-b03a-0c3f36d914db?auth=1 They tell you how to install the Japanese Supplemental fonts and I did conform this is an available install on a Windows 10 machine although the path to get to it was a little different. Also the Pan-European fonts are even harder to install - its purely manual - not by region choice. Perhaps we should update our fontconfig files for Windows in JDK 9 to reflect some of the changes. For example the Ja UI font is now "Yu Gothic UI". Also we may want to find a more reliable source of the symbol fonts. I think Segoe UI Symbol is the obvious choice here to add to our fallbacks. Perhaps we can do that as an interim measure for the symbols ? We don't need a new fontconfig file for that.
16-09-2015

The same is for the Graphics.drawString() method. --------------- @Override public void paint(Graphics g) { super.paint(g); g.drawString(TEXT, 200, 50); } ---------------
16-09-2015

The issue is reported against Windows 10. On Windows 7 (64-bit), with Oracle JDK 8u51, 8u60 ea b26 and 9 ea b75 the test (attached) run fine and unicode characters are displayed fine. Need to be checked for Windows 10. Moving this up for dev. team to evaluate for appropriate OS resource.
11-08-2015