Waarom worden sommige Unicode-symbolen niet weergegeven in Java?
Het coderen en weergeven van karakters uit verschillende talen betekende het werken met meerdere verschillende opmaaksystemen binnen hetzelfde project. Hoewel de introductie van Unicode dit probleem technisch heeft opgelost, kunt u nog steeds situaties tegenkomen waarbij sommige of alle Unicode-tekens niet correct worden weergegeven in Java-programma's. Dit is het gevolg van het niet correct configureren van weergaveobjecten.
Unicode-systeem
De Unicode-standaard werkt door een unieke code toe te wijzen die uit letters en cijfers bestaat en die elk teken vertegenwoordigt in elke taal die door de standaard wordt ondersteund. Vanwege het aantal talen dat door de Unicode-standaard wordt ondersteund, is echter niet voor elk systeem de Unicode-set voor elke taal geïnstalleerd. Als een computer geen ondersteuning voor een bepaalde taal heeft, worden de Unicode-tekens weergegeven als vraagtekens of als de eigenlijke letters en cijfers waaruit een code bestaat.
Opdrachtregel
Als u Java gebruikt via uw terminal of opdrachtregel zonder een aparte bibliotheek met grafische gebruikersinterfacecomponenten, gebruikt uw "system.out.println ()" -methode mogelijk niet standaard Unicode. Dit zou voorkomen dat het Unicode-tekens kan lezen of weergeven. U kunt uw "println () -methode" Unicode-tekens correct weergeven door de syntaxis "PrintStream uit = nieuwe PrintStream (System.out, true, 'UTF-8');" om een nieuwe objectinstantie te maken die Unicode gebruikt. Gebruik na deze syntaxis de opdracht "out.println ()" om uw Unicode-tekens af te drukken (negeer de buitencitaten in het hele artikel).
locales
De virtuele Java-machine behandelt Unicode-ondersteuning via een systeem van gespecialiseerde taalobjecten, genaamd 'locales'. Deze combineren Unicode-taalondersteuning met standaardinstellingen voor de valutasystemen, cijfers en andere tekens die van regio tot regio veranderen. Als u geen andere landinstelling of lettertypegroep opgeeft, laadt de JVM een landinstelling op basis van de taal die het besturingssysteem van de client momenteel gebruikt. Als de standaardtaal van de landinstelling niet de Unicode-reeks ondersteunt die uw programma probeert te gebruiken, kan het programma de Unicode-tekens niet weergeven.
Draai lettertype
Als een Swing GUI-component Unicode-tekens niet correct weergeeft, hebben de lettertypen die de componenten standaard gebruiken mogelijk geen ondersteuning voor de specifieke tekens of taal die u probeert te gebruiken. U kunt dit probleem oplossen door een nieuw font-object te maken met de syntaxis "font custom-font = new font ('font-name');" waarbij "aangepast lettertype" en "lettertypenaam" de namen zijn van het nieuwe lettertype dat u zult gebruiken. Dit kunnen lettertypen zijn zoals Serif, Arial of Lucida Grande. In de syntaxis is "aangepast lettertype" de naam die u aan het lettertype-object wilt geven. De syntaxis "object-name.setFont (aangepast lettertype);" zal het nieuwe lettertype toewijzen aan een Swing-component. In deze code is "objectnaam" de naam van het Swing-object dat uw Unicode-tekst weergeeft.