GUJ Discussões   :   últimos tópicos   |   categorias   |   GUJ Respostas

Como trabalhar com caracteres de controle?


#1

Olá a todos! :smiley:

Estou enviando para a porta serial uma determinada String, até ai tudo certo, uso o código abaixo:

outputStream.write(messageString.getBytes());

Porém, preciso concatenar nesse "messageString" alguns caracteres de controle ASCII (STX - Start of Text) (ETX - End of Text), alguém tem idéia de como fazer isso? Supondo que eu precise montar minha variável de uma forma similar a:

messageString = "STX" + valor + "ETX";

Segundo o site http://www.asciitable.com/ e http://www.jimprice.com/jim-asc.htm#controlcodes, os primeiros 32 caracteres ASCII não possuem representação literal pois são caracteres de controle, possuindo apenas representações em decimal, hexadecimal e octal.
Então, como fazer para montar a variável messageString com esses caracteres de controle ASCII usando java?

Agradeço qualquer ajuda.


#2

Primeira e mais importante regra sobre caracteres em Java: TODOS eles sao Unicode. Mais informacoes aqui:

http://www.guj.com.br/forum/viewtopic.php?t=11166

Dito isto, voce pode representar qualquer caractere de controle usando \u e o codigo Unicode dele, que, muito coincidentemente, eh o mesmo da tabela ASCII. No caso de STX e ETX, sao 0x02 e 0x03, respectivamente:

String foo = '\u0002' + texto + '\u0003';

:wink:


#3

Mui grato, cv. Vou testar isso agora mesmo!

Obrigado.


#4