U+0083 (Unicode Character ‘NO BREAK HERE’ (U+0083)) não é um caracter imprimível, segundo o Java. Por isso, é mostrado como um “?” em vez de um sinal de franco (como você deve estar esperando).
Porque o \u0083 não é um caractere imprimível. Informações do ‘Mapa de caracteres’ do Linux:
[não é um caractere imprimível]
U+0083 <control>
Propriedades gerais do caractere
No Unicode desde: 1.1
Categoria Unicode: Outro, Controle
Várias representações úteis
UTF-8: 0xC2 0x83
UTF-16: 0x0083
Octal C UTF-8 com escape: \302\203
Entidade decimal XML: ƒ
Anotações e referências cruzadas
Apelidos:
? NO BREAK HERE
Veja também:
? U+2060 WORD JOINER
Então gente… fiz uma gambiarra…e funcionou…
fui no word… inseri o simbolo que eu queria… o “éfinho” de função…
copiei e colei na variável declarada com char no meu código e deu certo…
mas achei um jeito mto primitivo e limitado fazer isso visto que futuramente poderei precisar de novo…
Você chegou perto.
Acho que sei qual foi seu erro, você não sacou que o Java usa um esquema de codificação e o Windows ou o DOS usa outros esquemas. Pode ser que eu tenha me expressado mal, sinto muito.
<alt+0131> ==> Pressione o alt enquanto digita 0131.
A codificação do java você já sabe.
Olhe aqui o esquema do Windows Latino: http://en.wikipedia.org/wiki/Windows-1252
Viu que o Windows mapeia o caracteres acima de 0x7F diferentemente do java? U+0083 não será impresso, você já deve estar careca de saber disso. A sacada é que há uma conversão entre esses dois tipos de codificação.
Quando você digita <alt+0131>/copia e cola o “éfinho” no seu editor do windows, que está usando codificação codepage 1252, ele tem o valor 0x0083(131 decimal) no seu editor. Quando esse caracter “vai” para o java, quando é compilado, ele sofre uma conversão para que não haja diferença na letra, no “desenho da letra”, que você está manipulando. Da mesma forma acontece o contrário. Então o U+0083 nunca será impresso pois a codificação do Windows não suporta esse char, não há uma conversão de U+0083 para o codepage 1252, até porque é um caracter de controle, por isso aparece uma interrogação quando você tentar imprimir esse valor. O valor Unicode que sofrerá a conversão para 0x0083/<alt+0131> em codepage 1252 é o U+0192, veja que na tabela debaixo de cada letra tem o valor Unicode da mesma.
public class teste { // A classe teste se chama teste para se fazer testes.
public static void main(String[] args) {
char a = '<alt+0131>'; // Seu "éfinho" '\u0192' U+0192
System.out.printf("--> %c (0x%X) <--\n", a, (int)a); // Imprime o caracter e seu valor em hexadecimal no Java, Unicode, UTF-16.
}
}
Cara saquei o que vc diz… mas esse comando que vc coloka(char a = ‘<alt+0131>’ é fictício?
digo, somente para ilustrar o meu éfinho, pois eu colokei no meu código e ele não reconhece o a palavra alt dentro das aspas.
Mil desculpas se eu novamente não me fiz entender.
Nesse campo de edição do fórum funciona (mas depois que você envia ou visualiza dá pau :D), no Word, no Wordpad, no Bloco de Notas e no Eclipse também mas no TextPad não.