Por que alguns símbolos Unicode não são exibidos em Java?

Codificar e exibir caracteres de diferentes idiomas costumava significar trabalhar entre vários sistemas de formatação diferentes dentro do mesmo projeto. Mesmo que a introdução do Unicode tenha resolvido tecnicamente esse problema, ainda é possível encontrar situações em que alguns ou todos os seus caracteres Unicode não serão exibidos adequadamente em programas Java. Este é o resultado de não configurar objetos de exibição corretamente.

Sistema Unicode

O padrão Unicode funciona atribuindo um código único que consiste em letras e números para representar todos os caracteres em todos os idiomas suportados pelo padrão. No entanto, devido ao número de idiomas que o padrão Unicode suporta, nem todo sistema possui o conjunto Unicode para cada idioma instalado. Se um computador não tiver suporte para um determinado idioma, ele exibirá seus caracteres Unicode como pontos de interrogação ou como as letras e números reais que compõem um código.

Linha de comando

Se você estiver executando o Java através de seu terminal ou linha de comando sem uma biblioteca separada de componentes da interface gráfica com o usuário, seu método "system.out.println ()" não poderá usar Unicode por padrão. Isso impediria que ele conseguisse ler ou exibir caracteres Unicode. Você pode fazer com que o "método println ()" exiba corretamente caracteres Unicode usando a sintaxe "PrintStream out = new PrintStream (System.out, true, 'UTF-8');" para criar uma nova instância de objeto que use Unicode. Após essa sintaxe, use o comando "out.println ()" para imprimir seus caracteres Unicode (ignore as aspas externas ao longo do artigo).

Localidades

A máquina virtual Java manipula o suporte a Unicode por meio de um sistema de objetos de linguagem especializados chamados "locales". Eles combinam suporte ao idioma Unicode com configurações padrão para os sistemas monetários, números e outros caracteres que mudam de região para região. Se você não especificar um código de idioma ou grupo de fontes diferente, a JVM carregará uma localidade com base no idioma que o sistema operacional do cliente está utilizando no momento. Se o conjunto de idiomas padrão do idioma não suportar o conjunto Unicode que seu programa está tentando usar, o programa não poderá exibir os caracteres Unicode.

Fonte Swing

Se um componente da GUI Swing não exibir adequadamente os caracteres Unicode, as fontes que os componentes estão usando por padrão talvez não tenham suporte para os caracteres ou idiomas específicos que você está tentando usar. Você pode resolver esse problema criando um novo objeto de fonte usando a sintaxe "fonte custom-font = new font ('font-name');" onde "custom-font" e "font-name" são os nomes da nova fonte que você usará. Estas podem ser fontes como Serif, Arial ou Lucida Grande. Na sintaxe, "custom-font" é o nome que você estará dando ao objeto da fonte. A sintaxe "nome-do-objeto.setFont (fonte personalizada);" irá atribuir a nova fonte a um componente Swing. Nesse código, "nome-do-objeto" é o nome do objeto Swing que está exibindo seu texto Unicode.

Publicações Populares