Friday, June 09, 2006

Sending non ASCII byte characters with Java

I recently wrote a short piece about a simple Telnet implementation. I got it all working...until I moved the code to a Solaris machine. Then it stopped working.

It turned out that the problem was the platforms' default charsets.

So, if you plan to send byte long control characters over TCP with Java. If you also choose to use the character based print and read methods from the Writer and Reader classes, as opposed to the byte based write and read methods. Then you should seriously consider manually setting the charset.

For example, in the case of a BufferedReader:


BufferedReader br = new BufferedReader(
new InputStreamReader(socket.getInputStream(),
Charset.forName("ISO-8859-1")));


Over and out for now then.

1 Comments:

Anonymous Anonymous said...

Can one say anything else but "hmm"? =)

Hej Anders, jag hoppas att allt är bra med dig och dina tjejer uppe i Stockholm. Härnere i Köpenhamn är det stressigt värre på jobbet och privat går det bara fint, letar just nu efter en lägenhet att köpa inne i stan. Det tar lite tid, men det verkar finnas ett ok utbud. Har bara blivit lite kräsen. Du vet, den ska ligga perfekt, vara perfekt och ha ett bra pris. Jag orkar inte med en "fixer-upper".

Ha det toppen, så hoppas jag vi ses snart. Håller på och funderar över att komma upp en helg framöver, tänktet försöka koordinera det med lite arbetsrelaterade aktiviteter också. Besöka en samarbetspartner och en skola vi arbetar för att få praktikanter från.

Hälsa Marika!

11:37  

Post a Comment

<< Home