Varför kommer vissa Unicode-symboler inte att visas i Java?

Kodning och visning av tecken från olika språk brukade innebära att man arbetar mellan flera olika formateringssystem inom samma projekt. Även om introduktionen av Unicode tekniskt löst detta problem, kan du fortfarande stöta på situationer där några eller alla dina Unicode-tecken inte kommer att visas korrekt i Java-program. Det här är resultatet av att du inte konfigurerar visningsobjekt på rätt sätt.

Unicode System

Unicode-standarden fungerar genom att tilldela en unik kod bestående av bokstäver och siffror för att representera varje tecken på varje språk som standarden stöder. På grund av antalet språk som Unicode-standarden stöder har inte alla system Unicode-uppsättningen för varje språk installerat. Om en dator inte har stöd för ett visst språk kommer det att visa sina Unicode-tecken som antingen fråga eller som de faktiska bokstäverna och numren som utgör en kod.

Kommandorad

Om du kör Java via din terminal eller kommandorad utan ett separat bibliotek med grafiska användargränssnittskomponenter, kan din metod "system.out.println ()" inte använda Unicode som standard. Detta förhindrar att den kan läsa eller visa Unicode-tecken. Du kan göra din "println () -metod" korrekt visa Unicode-tecken genom att använda syntaxen "PrintStream out = new PrintStream (System.out, true, " UTF-8 ");" för att skapa en ny objektinstans som använder Unicode. Efter denna syntax, använd kommandot "out.println ()" för att skriva ut dina Unicode-tecken (ignorera yttre citat i hela artikeln).

lokaler

Den virtuella Java-maskinen hanterar Unicode-stöd genom ett system med specialiserade språkobjekt som heter "locales". Dessa kombinerar språkstöd för Unicode med standardinställningar för valutasystem, nummer och andra tecken som ändras från region till region. Om du inte anger en annan lokal- eller teckengrupp, laddar JVM ett land baserat på det språk som klientens operativsystem använder för närvarande. Om språkinställningen för språkens språk inte stöder Unicode-uppsättningen som programmet försöker använda, kommer programmet inte att kunna visa Unicode-tecknen.

Swing Font

Om en Swing GUI-komponent inte visar korrekt Unicode-tecken, kan de teckensnitt som komponenterna använder som standard inte ha stöd för de specifika tecknen eller språket du försöker använda. Du kan lösa problemet genom att skapa ett nytt teckensnittsobjekt med hjälp av syntaxen "font custom font = new font (" font-name ");" där "anpassat teckensnitt" och "teckensnittsnamn" är namnen på det nya teckensnittet du ska använda. Dessa kan vara sådana typsnitt som Serif, Arial eller Lucida Grande. I syntaxen är "custom-font" det namn som du kommer att ge typsnittet. Syntaxen "object-name.setFont (anpassad typsnitt);" kommer att tilldela den nya teckensnittet till en Swing-komponent. I den här koden är "objektnamn" namnet på Swing-objektet som visar din Unicode-text.

Populära Inlägg