Pessoal tenho uma impressora termica que preciso passar alguns caracteres em ASCII para habilitar a impressão. Se eu vou no DOS e no edit faço a sequencia ALT+002 ele escreve uma e habilita a impressão.
Minha dúvida é como fazer o java ter uma string em ASCII.
Como uso o NetBeans 5 no Windows XP se eu digitar ALT+002 não sai nada. Preciso fazer alguma configuração? Ou (de preferencia) tem como eu converter minha string em ASCII na hora de passar para a impressora?
Para pôr um caracter de controle em uma string (argh), você pode usar a notação “\u0002”. Exemplo:
“\u0002” + “texto” + “\u0003”
para pôr o caracter 2 (STX) e o 3 (ETX) na sua string.
(Não funciona para o caracter 10, que em vez de “\u000A” deve ser representado por “\n”, nem para o 13, que em vez de “\u000D” deve ser representado por “\r”).
Cara funcionou legal, só uma dúvida vc fez um argh quando fala de string. Porque? Isso é uma má pratica em programação?
Onde eu posso obter uma lista com mais caracteres em ASCII como estes que vc me passou?
Strings são seqüências de caracteres (1 char = 2 bytes), não de bytes.
O problema é que o Java, embora permita converter arrays de bytes em strings e vice-versa, não faz isso sempre direito.
Experimente fazer o seguinte: crie um array de bytes de 256 bytes, com os bytes de -128 até +127.
A seguir, converta-o para uma string, e imprima o valor numérico dos caracteres dessa string.
Você vai ver que o Java converte muitos dos bytes para um valor inesperado (63 = 0x3F = ‘?’). Portanto, se puder tente não usar strings, e sim arrays de bytes.
Vc sabe onde encontro uma tabela com vários caracteres e a sua referencia, assim como vc me passou? É que preciso imprimir agora o caracter referente ao LF e não dá para ficar perguntando toda a hora.
Ola
faz isso !!
char caracter = (char) 27;
String ascw = new Character(caracter).toString();
Exemplo: ascw+“x0” + ascw+“E” + ascw+“0” + " "
Espero ter ajudado
Lindberg
Eae Pessoal, BOa TArde!
estou com um probleminha, estou trabalhando com Base64, acontece que meu código está quase perfeito, já está codificando e decoficando frases, textos, etc…só falta um detalhe que não estou conseguindo solucionar!!! não consigo de maneira alguma decodificar os caracteres especiais, exemplo:
“\000”, “\u0000”…que seriam na tabela ASCII os caracteres correpondentes dos numeros decimais de 01 á 31 e 127…alguém pode me ajudar quanto á isso???
preciso apenas saber como decodificar esses caracteres especiais…ao invéz de aparecer decodificado, aparece como se fosse um caracter inválido
obrigado