Hvorfor vises nogle Unicode-symboler ikke i Java?

Kodning og visning af tegn fra forskellige sprog plejer at betyde at arbejde mellem flere forskellige formateringssystemer inden for det samme projekt. Selvom introduktionen af ​​Unicode teknisk løst dette problem, kan du stadig støde på situationer, hvor nogle eller alle dine Unicode-tegn ikke vises korrekt i Java-programmer. Dette er resultatet af ikke at konfigurere displayobjekter korrekt.

Unicode System

Unicode-standarden fungerer ved at tildele en unik kode bestående af bogstaver og tal for at repræsentere hver karakter på hvert sprog, standarden understøtter. På grund af antallet af sprog, som Unicode-standarden understøtter, har ikke alle systemer Unicode-sæt for hvert sprog installeret. Hvis en computer ikke har støtte til et givet sprog, vil det vise sine Unicode-tegn som enten spørgsmålstegn eller som de faktiske bogstaver og tal, der udgør en kode.

Kommandolinje

Hvis du kører Java via din terminal eller kommandolinje uden et separat bibliotek med grafiske brugergrænsefladekomponenter, kan din "system.out.println ()" metode ikke bruge Unicode som standard. Dette forhindrer det i at kunne læse eller vise Unicode-tegn. Du kan gøre din "println () -metode" korrekt vist Unicode-tegn ved at bruge syntaksen "PrintStream out = new PrintStream (System.out, true, " UTF-8 ");" at oprette en ny objektinstans, der bruger Unicode. Efter denne syntaks, brug kommandoen "out.println ()" til at udskrive dine Unicode-tegn (ignorér ydre citater i hele artiklen).

locales

Den virtuelle Java-maskine håndterer Unicode-support gennem et system med specialiserede sprogobjekter kaldet "lokaliteter". Disse kombinerer Unicode sprogsupport med standardindstillinger for valutasystemerne, numrene og andre tegn, der ændres fra region til region. Hvis du ikke angiver en anden lokal eller skrifttypegruppe, vil JVM indlæse en lokalitet baseret på det sprog, klientens operativsystem bruger i øjeblikket. Hvis localeens standardsprog ikke understøtter det Unicode-sæt, dit program forsøger at bruge, vil programmet ikke kunne vise Unicode-tegnene.

Swing Font

Hvis en Swing GUI-komponent ikke viser korrekt Unicode-tegn korrekt, kan de skrifttyper, komponenterne bruger som standard, muligvis ikke understøtte de specifikke tegn eller sprog, du forsøger at bruge. Du kan løse dette problem ved at oprette et nyt skrifttypeobjekt ved hjælp af syntaksen "skrifttype brugerdefineret skrifttype = ny skrifttype (" skrifttypenavn ");" hvor "brugerdefineret skrifttype" og "skrifttypenavn" er navne på den nye skrifttype, du vil bruge. Disse kan være sådanne skrifttyper som Serif, Arial eller Lucida Grande. I syntaksen er "brugerdefineret skrifttype" det navn, du vil give skrifttypeobjektet. Syntaxen "object-name.setFont (brugerdefineret skrifttype);" vil tildele den nye skrifttype til en Swing-komponent. I denne kode er "objektnavn" navnet på Swing-objektet, der viser din Unicode-tekst.

Populære Indlæg