Ascii Estendido

Pessoal,

Estou com dificuldades em interpretar os caracteres da tabela Ascii estendido, ou seja, a representação acima dos 128 códigos da tabela básica.

Alguém tem idéia de como pode ser feito isso???

Já tentei usar ISO-8859-1 mas sem sucesso…

Alguém ???

Você poderia ser mais específico? Detalhe mais um pouco seu problema.

veja esta tabela

http://www.din.uem.br/sica/material/ascii.php

preciso transformar os caracteres de 128 a 255 em binário…

[quote=nanydesp]veja esta tabela

http://www.din.uem.br/sica/material/ascii.php

preciso transformar os caracteres de 128 a 255 em binário…[/quote]

E qual a dificuldade? É só você colocar os números entre 128 e 255 em binário.

Se quiser imprimir os números em binário, existe o método Integer.toString(valor, base)

for (int i = 0, i < 255; i++)
  System.out.println(Integer.toString(i, 2));

é que eu só tenho os caracteres…

São caracteres das tabela CP437 (ASCII Estendido) ou da ISO 8859-1?

CP437 (ASCII Estendido) , a partir deles eu preciso chegar no binário correspondente.

String caracteresEmCP437 = "╟┤₧Ü"; byte[] bytes = caracteresEmCP437.getBytes("CP437"); for (byte b : bytes) { String binario = Integer.toString(b, 2); System.out.println(binario); }

Nem testei.

só uma dúvida amigo … o que significa o :

for (byte b : bytes) 

nunk usei …por isso não sei o que é esse “:” no for …

:oops:

desculpem a minha iguinorâncias …

deu este erro : :?: :?

[quote=sowyer]só uma dúvida amigo … o que significa o :

for (byte b : bytes) 

nunk usei …por isso não sei o que é esse “:” no for …

:oops:

desculpem a minha iguinorâncias … [/quote]

É uma “novidade” do Java 5:

http://rafaelsakurai.blogspot.com/2006/05/novidade-java-5-for-each.html

Umm Eclipse… Nunca usei ele, mas qdo vc vai salvar o arquivo usando o Salvar Como…, não tem uma opção p/ mudar o encoding do código fonte? Mude para UTF-8.

Parece que tem também em Preferences->General->Workspace pra mudar o encoding, e também dentro das propriedades do projeto.

mudar o encoding Blz, mas n funcionou :frowning:

…ele n entende estes caracteres especiais e joga um “?” mudando totalmente o valor q espero.

o q deveria ser:

char = ¸
binário = 10000010

fica

char = ?
binário = 00111111

Aqui dá um resultado parecido, mas é por causa da fonte do console que não aparece os caracteres. O binário fica certo.

Ele estava imprimindo o binário errado, esqueci de levar em consideração a transformação de byte ´/ int. O código corrigido:

[code]
import java.io.UnsupportedEncodingException;

public class AsciiEstendido
{
public static void main(String[] args)
{
try
{
String caracteresEmCP437 = “╟┤₧Ü”;
byte[] bytes = caracteresEmCP437.getBytes(“CP437”);
for (byte b : bytes)
{
String binario = null;
if (b < 0)
binario = Integer.toString(b + 256, 2);
else
binario = Integer.toString(b, 2);

        byte[] barr = { b };
        System.out.println("char: " + new String(barr, "CP437") + "\nbinário: " + binario);
     }
  }
  catch (UnsupportedEncodingException ex)
  {
  }

}
}[/code]
Imprime

char: ? binário: 11000111 char: ? binário: 10110100 char: ? binário: 10011110 char: Ü binário: 10011010

Muito Obrigada Bruno!!!

Preciso de mais uma ajudinha sua :slight_smile:

Além de usar o encoding UTF-8 e o Java 5, tem alguma outra coisa que tenho que mudar??? meu projeto não compila de jeito nenhum…

Aí é mais difícil, mostra algum erro?

Só qndo eu tento executar…

Exception in thread “main” java.lang.Error: Unresolved compilation problem:

at AsciiEstendido.main(AsciiEstendido.java:7)

mas não aponta nenhum erro na classe…

O erro é por que a classe não foi compilada corretamente.

Tente compilar o arquivo à força, ou dar um clean no projeto, e compile de novo.

Blz…resolvi!

Mto obrigada Bruno!!!

Valeww mesmo.