Ascii Estendido

19 respostas
N

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 ???

19 Respostas

xjcd

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

N

veja esta tabela

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

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

B

nanydesp:
veja esta tabela

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

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

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));
N

é que eu só tenho os caracteres…

B

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

N

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

B

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

Nem testei.

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 …

N

deu este erro : :?: :?

B

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 …

É uma “novidade” do Java 5:

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

B

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.

B

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

N

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

B

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:

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)
      {
      }
   }
}
Imprime
char: ?
binário: 11000111
char: ?
binário: 10110100
char: ?
binário: 10011110
char: Ü
binário: 10011010
N

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…

B

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

N

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…

B

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.

N

Blz…resolvi!

Mto obrigada Bruno!!!

Valeww mesmo.

Criado 8 de outubro de 2008
Ultima resposta 9 de out. de 2008
Respostas 19
Participantes 4