| Autor |
Mensagem |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 19/06/2006 17:02:04
|
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
----------------------------------------- |
|
|
 |
|
|
![[Post New]](/templates/default/images/icon_minipost_new.gif) 19/06/2006 17:07:19
|
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").
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 19/06/2006 17:19:49
|
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
----------------------------------------- |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 19/06/2006 17:32:21
|
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.
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 20/06/2006 08:06:41
|
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
----------------------------------------- |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 20/06/2006 10:03:42
|
Lindberg
JavaEvangelist
![[Avatar]](/images/avatar/a18aa23ee676d7f5ffb34cf16df3e08c.jpg)
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+++. |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 26/06/2009 14:21:20
|
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
|
|
|
 |
|
|