Conversão de CHAR p/ ASCII (não pra UNICODE)

Olá amigos,

depois de tentar um bocado, resolvi pedir a ajuda de voces.

	public static void main(String[] args) throws UnsupportedEncodingException, Exception {
		char c = '?';
		System.out.println((int) c);
	}

o resultado é 8240 seu código UNICODE.

mas o código ASCII é 137 (vide: https://files.oakland.edu/users/grossman/web/ascii.codes.html)

Alguem sabe como recuperar esse código ASCII ?

pessoal o forum não exibiu o caractere certo… exibiu uma interrogação o caracter correto é o ASCII 137 desse link: https://files.oakland.edu/users/grossman/web/ascii.codes.html

Meu programa é um mais complexo e tem relação com outras plataformas (C, Clipper) + Criptografia proprietaria, porem esse exemplo ai de cima exemplifica exatamente o que eu quero fazer…

Tentei conversão com Charsets, mas nao deu muito certo tb não… posso ter feito alguma besteira…

Se algum companheiro souber a solução para este problema eu agradeço a força.

Muito obrigado.

Primeiramente, os códigos ASCII foram definidos apenas no intervalo 0 até 127. Portanto, o caracter Unicode U+2030 (PER MILLE SIGN) e cujo código em decimal é 8240 não tem um “código ASCII”. Na codificação Windows-1252 (usada no Windows em português) esse caracter está realmente na posição 137.

Veja: http://en.wikipedia.org/wiki/Windows-1252
e
http://www.fileformat.info/info/unicode/char/2030/index.htm

Respondendo à sua pergunta, o que você quer pode ser feito assim:

String s = "\u2030"; // representando o caracter ‰
byte[] b = s.getBytes ("Windows-1252");
int ch = (int) (b[0] & 0xFF); 
System.out.println (ch); // deve imprimir 137

Mais uma coisa - para postar esse tal caracter aqui no fórum, experimente usar ‰ ou então, se você prefere o código em hexadecimal (é mais fácil achar na tabela Unicode), ‰

entanglement, muito obrigado por sua ajuda e seus esclarecimentos.

Funcionou perfeitamente aqui.

Um forte abraço.