Escrever string com caracteres ASCII

6 respostas
P

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

6 Respostas

T

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”).

P

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?

T

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.

P

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.

Lindberg

Ola

faz isso !!

char caracter = (char) 27;
String ascw = new Character(caracter).toString();

Exemplo: ascw+“x0” + ascw+“E” + ascw+“0” + " "

Espero ter ajudado

Lindberg

M

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

Criado 19 de junho de 2006
Ultima resposta 26 de jun. de 2009
Respostas 6
Participantes 4