Hvorfor vil noen Unicode-symboler ikke vises i Java?

Koding og visning av tegn fra forskjellige språk pleide å bety å jobbe mellom flere forskjellige formateringssystemer i samme prosjekt. Selv om introduksjonen av Unicode teknisk løst dette problemet, kan du fortsatt støte på situasjoner der noen eller alle Unicode-tegnene dine ikke vises riktig i Java-programmer. Dette er resultatet av ikke å konfigurere displayobjektene riktig.

Unicode System

Unicode-standarden fungerer ved å tildele en unik kode bestående av bokstaver og tall for å representere alle tegn på hvert språk som standarden støtter. På grunn av antall språk som Unicode-standarden støtter, har ikke alle systemer Unicode-settet for hvert språk installert. Hvis en datamaskin ikke har støtte for et gitt språk, vil det vise sine Unicode-tegn som enten spørsmålstegn eller som de faktiske bokstavene og tallene som utgjør en kode.

Kommandolinje

Hvis du kjører Java via din terminal eller kommandolinje uten et eget bibliotek med grafiske brukergrensesnittkomponenter, kan ikke systemmetoden "system.out.println ()" bruke Unicode som standard. Dette forhindrer at det kan lese eller vise Unicode-tegn. Du kan gjøre "println () -metoden" riktig vise Unicode-tegn ved å bruke syntaksen "PrintStream out = new PrintStream (System.out, true, " UTF-8 ");" å opprette en ny objekteksempel som bruker Unicode. Etter denne syntaksen, bruk kommandoen "out.println ()" for å skrive ut Unicode-tegnene dine (ignorere ytre sitater gjennom hele artikkelen).

steder

Den virtuelle Java-maskinen håndterer Unicode-støtte gjennom et system med spesialiserte språkobjekter kalt "lokaliteter". Disse kombinerer Unicode språkstøtte med standardinnstillinger for valutasystemene, tallene og andre tegn som endres fra region til region. Hvis du ikke angir en annen lokal- eller skrifttypegruppe, laster JVM en lokal språk basert på språket som kundens operativsystem bruker for øyeblikket. Hvis språkets språkversjon ikke støtter Unicode-settet som programmet prøver å bruke, vil programmet ikke kunne vise Unicode-tegnene.

Swing Font

Hvis en Swing GUI-komponent ikke klarer å vise Unicode-tegn på riktig måte, kan de skriftene komponentene bruker som standard ikke ha støtte for de spesifikke tegnene eller språket du prøver å bruke. Du kan løse dette problemet ved å opprette et nytt skriftobjekt ved hjelp av syntaksen "font custom font = new font (" font-name ");" der "tilpasset skrifttype" og "skrifttype-navn" er navnene på den nye skrifttypen du vil bruke. Disse kan være slike skrifter som Serif, Arial eller Lucida Grande. I syntaksen er "egendefinert skrifttype" det navnet du vil gi skriftobjektet. Syntaxen "object-name.setFont (tilpasset skrift);" vil tilordne den nye skrifttypen til en Swing-komponent. I denne koden er "objektnavn" navnet på Swing-objektet som viser Unicode-teksten.

Populære Innlegg