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 ???
xjcd
Outubro 8, 2008, 1:38pm
#2
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.
sowyer
Outubro 8, 2008, 2:53pm
#9
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=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
nanydesp:
deu este erro : :?: :?
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
…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
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.