J'utilisais une ancienne application Java et elle ne s'affichait pas bien dans Wingdings. Plus précisément, divers sites ont déclaré que «!» (0x21) serait une marque de crayon, mais il ne s'affichait pas correctement (il était affiché sous forme de carré dans cette application. Il est traité comme un caractère qui ne peut pas être converti).
Je me suis demandé si cela était dû à une ancienne application (c'était une application basée sur Swing, donc c'est probablement Java7 ou antérieur), mais apparemment ni Java8 ou Java11 ni JavaFX ne peuvent bien afficher les symboles.
J'ai utilisé la classe Font de awt pour vérifier la plage qui peut être affichée dans la police correspondante.
WingdingsTest.java
import java.awt.Font;
import java.util.stream.Collectors;
import java.util.stream.IntStream;
public class WingdingsTest {
public static void main(String[] args) {
final Font font = new Font("wingdings", Font.PLAIN, 32);
final String codes = IntStream.range(0, 0x10000)
.filter(font::canDisplay)
.mapToObj(Integer::toHexString)
.collect(Collectors.joining(","));
System.out.println(codes);
}
}
En regardant les résultats, il semble que U + 0009 (TAB), U + 000a (LF), U + 000d (CR), autour de U + 20xx et autour de U + f0xx peuvent être affichés.
Quand je l'ai essayé, la zone autour de U + f021 à U + f0ff était le symbole des Wingdings. En d'autres termes, si vous souhaitez afficher la marque de crayon 0x21, vous pouvez afficher le point de code U + f021.
Cette zone semble être la soi-disant zone de caractère externe (zone privée) d'Unicode.
Si vous regardez l'explication de "Caractères étrangers dans JIS X 0221 (Unicode)" dans "Caractères étrangers" sur cette wikipedia, elle dit comme suit.
Les glyphes de police de symboles tels que Wingdings sont associés à certains U + F020 à U + F0FF en Unicode
Quand je l'ai essayé, non seulement les polices Wingdings, mais aussi les polices Webdings et Symbol se ressemblaient.
Recommended Posts