Java 8 can't render Japanese characters on Red Hat Enterprise Linux 8.
The vlgothic-fonts package which was part of RHEL 7 is replaced with google-noto-sans-cjk-ttc-fonts package in RHEL 8. This seems to cause problems with Java 8.
The work to add support for CFF format fonts to Oracle JDK 8 is being tracked under JDK-8209672.
JDK-8209672 is the extreme case where no other fonts are found which leads to ArrayIndexOutOfBoundsException.
JDK 13 has no issues with CJK on RHEL 8.
After comparing the fontconfig files for JDK 13 and JDK 8, I found the following differences:
Fontconfig for 13 contains the following line:
That is the default font is a CFF format font.
Java 8 does not accept fonts in CFF format (yet).
So such a line is missing in fontconfig file for 8.
Indeed, there are no references to fonts with .ttc extension in fontconfig for 8u221 whereas 13 contains 24 references to such fonts:
fonts$ grep -c .ttc 1*/*.properties
The vlgothic-fonts package provided TrueType fonts to render CJK which were used by Java 8. Without this package, Java 8 has no font to render CJK text that's why the missing glyphs are seen.