Escrever string com caracteres ASCII.  XML
Índice dos Fóruns » Java Básico
Autor Mensagem
petter
Virtual Machine Man

Membro desde: 28/04/2006 17:11:34
Mensagens: 662
Offline

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?

-----------------------------------------
Java is the future
-----------------------------------------
[WWW]
thingol
Moderador

Membro desde: 29/07/2004 16:10:13
Mensagens: 17543
Offline

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

[WWW]
petter
Virtual Machine Man

Membro desde: 28/04/2006 17:11:34
Mensagens: 662
Offline

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?

-----------------------------------------
Java is the future
-----------------------------------------
[WWW]
thingol
Moderador

Membro desde: 29/07/2004 16:10:13
Mensagens: 17543
Offline

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.
[WWW]
petter
Virtual Machine Man

Membro desde: 28/04/2006 17:11:34
Mensagens: 662
Offline

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.

-----------------------------------------
Java is the future
-----------------------------------------
[WWW]
Lindberg
JavaEvangelist
[Avatar]

Membro desde: 02/05/2006 19:23:53
Mensagens: 363
Offline

Ola

faz isso !!

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

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

Espero ter ajudado

Lindberg


Aqui... A turma é D+++.
[WWW] [MSN]
mhk
Smalltalk

Membro desde: 08/06/2009 11:58:59
Mensagens: 2
Offline

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
 
Índice dos Fóruns » Java Básico
Ir para:   
Powered by JForum 2.1.8 © JForum Team