Usar Unicode dentro de um String Java

Olá pessoal,

Eu preciso utilizar alguns caracteres unicode dentro de um String java, porém não sei ao certo como fazer isso.
Gostaria de saber se alguém sabe como posso ter acesso a representação gráfica de um caracter Unicode a partir de seu código…

desde já obrigado!

Java trabalha internamente sempre com Unicode; algumas coisas (como entrada e saída em arquivos ou na tela) é que podem ser em Unicode ou não.

Por exemplo, se eu quiser escrever “Bom dia” em japonês no Java:

String msg = "\u304A\u306F\u3088\u3045!"; // おはよう

onde “\u304A” representa o caracter japonês “HIRAGANA LETTER O” (U+304A), “\u306F” o caracter “HIRAGANA LETTER HA” (U+306F), “\u3088” o caracter “HIRAGANA LETTER YO” (U+3088)e “\u3045” o caracter “HIRAGANA LETTER SMALL U” (U+3045).

A representação gráfica depende muito da fonte sendo usada. Por exemplo, na maior parte das fontes TrueType do Windows e do Linux, você não tem os caracteres japoneses e chineses que seriam necessários para a representação gráfica dos caracteres inseridos na string do meu exemplo.

Obrigado pela resposta, de verdade, mas não entendi uma coisa:

Se um caracter pode ser visualizado no word por exemplo, isso quer dizer que a fonte está instalada no computador, certo??

os caracteres que eu preciso podem ser visualizados no word, mas não consigo visualizar no console ou em um JOptionPane…

sabe o que pode ser??

vlw!

O Word, o Internet Explorer etc. usam as seguintes mágicas:

a) suponha que você tenha formatado uma frase com “Times New Roman”, mas nessa frase existam caracteres que só possam ser visualizados com outras fontes (“MS Gothic” ou “MS Mincho” no caso de letras japonesas, “Batang” para letras coreanas, etc.). Ele muda a fonte só para esses caracteres, sem você precisar formatar explicitamente para “MS Gothic”, “Batang” etc.) se ele vir que essas fontes estão instaladas.

b) Eles aceitam frases com várias fontes. Pode ser que a tal letra que você não consegue visualizar esteja em outra fonte. Um exemplo desses é quando algum símbolo usa a fonte Symbol; no Times New Roman ou no Courier New esses símbolos aparecem diferentemente (como bloquinhos ou sinais de “?”) ou simplesmente não aparecem.

É o Java da Sun que não consegue fazer a mágica “a” automaticamente; você precisa formatar manualmente com várias fontes diferentes se seu texto tiver caracteres que não são representáveis na sua fonte padrão.

O console é bastante bitolado; ele aceita basicamente Code Page 437 (alguns caracteres acentuados) ou Code Page 850 (inclui os caracteres acentuados. Se você usar o comando

CHCP 1252

e mudar o tipo de letra para Lucida Console, ele aceita Code Page 1252 (ou seja, aproximadamente ISO-8859-1).

Mas ideogramas no console? Só no Windows em japonês ou chinês.